AKS, узел WIndows, dns не разрешает службу, пока не будет использовано полное имя

#azure #kubernetes #azure-aks

#azure #kubernetes #azure-aks

Вопрос:

Кластер AKS с несколькими пулами узлов Linux и Windows. Клиент Kafka: Confluent.Kafka 1.4.4

Пытаюсь разрешить службу kafka с именем «tt-kafka-kafka-bootstrap.shared».

Из с в модуле Windows — НЕ УДАЕТСЯ РАЗРЕШИТЬ:

 kubectl exec -it test-print-7f6b64dc4f-4z7lt --namespace test -- nslookup tt-kafka-kafka-bootstrap.shared
Server: kube-dns.kube-system.svc.cluster.local
Address: 10.0.0.10

*** kube-dns.kube-system.svc.cluster.local can't find tt-kafka-kafka-bootstrap.shared: Non-existent domain
  

НО ЕСЛИ Я УКАЖУ АДРЕС СЛУЖБЫ С ПОМОЩЬЮ svc.cluster.local , ОН РАЗРЕШИТСЯ:

 kubectl exec -it test-print-7f6b64dc4f-4z7lt --namespace test -- nslookup tt-kafka-kafka-bootstrap.shared.svc.cluster.local
Server: kube-dns.kube-system.svc.cluster.local
Address: 10.0.0.10

Name: tt-kafka-kafka-bootstrap.shared.svc.cluster.local
Address: 10.0.192.149
  

ИЗ С в LINUX POD — РАЗРЕШАЕТ НОРМАЛЬНО:

 root@test-worker-t1-0:/app# nslookup tt-kafka-kafka-bootstrap.shared
Server: 10.0.0.10
Address: 10.0.0.10#53

Name: tt-kafka-kafka-bootstrap.shared.svc.cluster.local
Address: 10.0.192.149
  

Комментарии:

1. Для его разрешения в контейнерах Windows в kubernetes необходимо использовать полное доменное имя (service-name.namespace.svc.cluster.local). Если вы хотите получить доступ к службе в том же пространстве имен, использование «service-name» будет разрешено просто отлично.

Ответ №1:

Оказывается, Windows не может разрешить пробелы имен с помощью в kubernetes.

Пожалуйста, обратитесь к следующей документации K8 для получения дополнительной информации о контейнерах Windows в Kubernetes: https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#dns-limitations