Kubernetes CoreDNS разрешает имена с перерывами - PullRequest
0 голосов
/ 13 мая 2019

У меня есть двухузловой кластер Kubernetes EKS, который работает "v1.12.6-eks-d69f1"

Amazon VPC CNI Plugin for Kubernetes version: amazon-k8s-cni:v1.4.1
CoreDNS version: v1.1.3
KubeProxy: v1.12.6

В кластере работают два модуля CoreDNS.

У меня проблема в том, что мои модули периодически разрешают внутренние DNS-имена.(Разрешение внешних DNS-имен работает отлично)

root@examplecontainer:/# curl http://elasticsearch-dev.internaldomain.local:9200/
curl: (6) Could not resolve host: elasticsearch-dev.internaldomain.local

asticsearch-dev.internaldomain.local зарегистрирован во внутренней размещенной зоне AWS Route53.Вышеприведенное работает с перебоями, если я сгенерирую пять запросов, два из них будут разрешены правильно, а остальные не получатся.

Это содержимое файла /etc/resolv.conf в приведенном выше примере примера:

root@examplecontainer:/# cat /etc/resolv.conf 
nameserver 172.20.0.10
search default.svc.cluster.local svc.cluster.local cluster.local eu-central-1.compute.internal
options ndots:5

Есть идеи, почему это может происходить?

Ответы [ 3 ]

0 голосов
/ 13 мая 2019

просмотрите этот раздел «Включение разрешения DNS для конечных точек кластера Amazon EKS» здесь .

Частная размещенная зона Amazon Route 53, созданная для конечной точки,связывается только с рабочим узлом VPC.

Если это похожая игрушка, ваш env.Вы можете найти решение здесь .

Пожалуйста, поделитесь с результатами.

0 голосов
/ 23 мая 2019

Я исправил эту проблему, переключившись с пользовательского «набора параметров DHCP» на «набор параметров DHCP по умолчанию», предоставляемый AWS. Я создал пользовательский «набор параметров DHCP» несколько месяцев назад и назначил его на VPC, где работает кластер EKS ...

Как я дошел до сути этого?

После запуска "kubectl get events -n kube-system" я понял следующее:

Warning  DNSConfigForming  17s (x15 over 14m)  kubelet, ip-10-4-9-155.us-west-1.compute.internal  Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: 10.4.8.2 8.8.8.8 8.8.4.4

8.8.8.8 и 8.8.4.4 были добавлены созданным мной проблемным «набором параметров DHCP». И я думаю, что причина, по которой мои службы разрешали внутренние DNS-имена с перерывами, заключалась в том, что служба CoreDNS внутренне пересылала DNS-запросы на 10.4.8.2, 8.8.4.4, 8.8.8.8 в режиме циклического перебора. Поскольку последние 2 DNS-сервера не знают о DNS-записях внутренней размещенной зоны Route53, разрешение периодически прерывалось.

Примечание 10.4.8.2 является сервером имен AWS по умолчанию.

Как только произойдет переключение на стандартный набор параметров DHCP, предоставляемый AWS, службы EKS смогут последовательно разрешать мои внутренние DNS-имена.

Надеюсь, это поможет кому-то в будущем.

0 голосов
/ 13 мая 2019

вы должны попробовать ниже dns из контейнера

curl http://elasticsearch -dev.default.svc.cluster.local: 9200 /

...