Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба Azure Kubernetes (AKS) использует CoreDNS для управления и разрешения DNS кластера со всеми кластерами 1.12.x и позднее. AKS — это управляемая служба, поэтому вы не можете изменить основную конфигурацию для CoreDNS (CoreFile). Вместо этого переопределите параметры по умолчанию с помощью объекта ConfigMap, который предоставляет служба Kubernetes. Чтобы просмотреть стандартные объекты ConfigMap AKS для CoreDNS, используйте команду kubectl get configmaps --namespace=kube-system coredns --output yaml.
В этой статье показано, как использовать ConfigMaps для основных параметров настройки CoreDNS в службе Azure Kubernetes (AKS).
Примечание.
Ранее AKS использовал kube-dns для управления и разрешения DNS кластера, но теперь это устарело.
kube-dns предоставляет варианты настройки с помощью сопоставления конфигурации Kubernetes. CoreDNS не совместим с kube-dns. Для работы с CoreDNS необходимо обновить все предыдущие настройки.
Предпосылки
- В этой статье предполагается, что у вас есть кластер AKS. Если вам нужен кластер AKS, можно создать его с помощью Azure CLI, Azure PowerShell или портал Azure.
- Проверьте версию CoreDNS, которую вы используете. Значения конфигурации могут изменяться между версиями.
Поддержка подключаемого модуля
Поддерживаются все встроенные подключаемые модули CoreDNS. Не поддерживаются надстройки и подключаемые модули сторонних производителей.
Внимание
При создании конфигураций, таких как в этой статье, имена, указанные в data разделе, должны заканчиваться .server или .override. Это соглашение об именовании kubectl get configmaps --namespace=kube-system coredns --output yaml определяется в конфигурации ConfigMap по умолчанию AKS CoreDNS, которое можно просмотреть с помощью команды.
Настроить переписывание имен DNS
Создайте файл с именем
corednsms.yamlи вставьте его в следующую конфигурацию. Убедитесь, что заменили<domain to be rewritten>своим полным доменом (FQDN).apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | <domain to be rewritten>.com:53 { log errors rewrite stop { name regex (.*)\.<domain to be rewritten>\.com {1}.default.svc.cluster.local answer name (.*)\.default\.svc\.cluster\.local {1}.<domain to be rewritten>.com } forward . /etc/resolv.conf # You can redirect this to a specific DNS server such as 10.0.0.10, but that server must be able to resolve the rewritten domain name }Внимание
Если вы используете перенаправление на DNS-сервер, например на IP-адрес службы CoreDNS, этот DNS-сервер должен иметь возможность разрешать новое доменное имя.
Создайте ConfigMap с помощью
kubectl apply configmapкоманды и укажите имя манифеста YAML.kubectl apply -f corednsms.yamlУбедитесь, что настройки были применены с помощью
kubectl get configmapsкоманды.kubectl get configmaps --namespace=kube-system coredns-custom -o yamlВыполните последовательный перезапуск, чтобы перезагрузить ConfigMap и включить планировщик Kubernetes для перезапуска CoreDNS без простоя с помощью
kubectl rollout restartкоманды.kubectl --namespace kube-system rollout restart deployment coredns
Укажите сервер пересылки для сетевого трафика
Создайте файл с именем
corednsms.yamlи вставьте его в следующую конфигурацию. Обязательно заменитеforwardимя и<domain to be rewritten>собственные значения.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | # You can select any name here, but it must end with the .server file extension <domain to be rewritten>.com:53 { forward foo.com 1.1.1.1 }Создайте ConfigMap с помощью
kubectl apply configmapкоманды.kubectl apply -f corednsms.yamlВыполните последовательный перезапуск, чтобы перезагрузить ConfigMap и включить планировщик Kubernetes для перезапуска CoreDNS без простоя с помощью
kubectl rollout restartкоманды.kubectl --namespace kube-system rollout restart deployment coredns
Использование личных доменов
Может потребоваться настроить пользовательские домены, которые могут быть разрешены только внутри системы. Например, может потребоваться разрешить пользовательский домен puglife.local, который не является допустимым доменом верхнего уровня. Без ConfigMap для этого личного домена кластер AKS не сможет разрешить такой адрес.
Создайте файл с именем
corednsms.yamlи вставьте его в следующую конфигурацию. Обязательно обновите личный домен и IP-адрес с собственными значениями.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: puglife.server: | # You can select any name here, but it must end with the .server file extension puglife.local:53 { errors cache 30 forward . 192.11.0.1 # This is my test/dev DNS server }Создайте ConfigMap с помощью
kubectl apply configmapкоманды.kubectl apply -f corednsms.yamlВыполните последовательный перезапуск, чтобы перезагрузить ConfigMap и включить планировщик Kubernetes для перезапуска CoreDNS без простоя с помощью
kubectl rollout restartкоманды.kubectl --namespace kube-system rollout restart deployment coredns
Настроить псевдодомены
Создайте файл с именем
corednsms.yamlи вставьте следующую конфигурацию. Обязательно обновите пользовательские домены и IP-адреса с собственными значениями.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | # You can select any name here, but it must end with the .server file extension abc.com:53 { errors cache 30 forward . 1.2.3.4 } my.cluster.local:53 { errors cache 30 forward . 2.3.4.5 }Создайте ConfigMap с помощью
kubectl apply configmapкоманды и укажите.kubectl apply -f corednsms.yamlВыполните последовательный перезапуск, чтобы перезагрузить ConfigMap и включить планировщик Kubernetes для перезапуска CoreDNS без простоя с помощью
kubectl rollout restartкоманды.kubectl --namespace kube-system rollout restart deployment coredns
Добавьте настраиваемые сопоставления узла с IP-адресами
Создайте файл с именем
corednsms.yamlи вставьте следующую конфигурацию. Обязательно обновите IP-адреса и имена узлов с собственными значениями.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom # This is the name of the ConfigMap you can overwrite with your changes namespace: kube-system data: test.override: | # You can select any name here, but it must end with the .override file extension hosts { 10.0.0.1 example1.org 10.0.0.2 example2.org 10.0.0.3 example3.org fallthrough }Создайте ConfigMap с помощью
kubectl apply configmapкоманды.kubectl apply -f corednsms.yamlВыполните последовательный перезапуск, чтобы перезагрузить ConfigMap и включить планировщик Kubernetes для перезапуска CoreDNS без простоя с помощью
kubectl rollout restartкоманды.kubectl --namespace kube-system rollout restart deployment coredns