Пользователи Managed Kubernetes могут переопределить настройки CoreDNS по умолчанию, используя Kubernetes ConfigMap. В инструкции описано, как использовать ConfigMaps для настройки параметров CoreDNS в Managed Kubernetes.
Поддерживаются все встроенные плагины CoreDNS. Сторонние и дополнительные плагины не поддерживаются.
Перед началом работы
Создайте кластер Managed Kubernetes и хотя бы одну группу узлов.
Шаг 1. Проверьте базовую конфигурацию CoreDNS
В терминале или PowerShell выполните команду:
kubectl get configmap -n kube-system coredns -o yaml
Не изменяйте ConfigMap coredns. При обновлении версии плагина CoreDNS или изменении параметров coredns автоматически восстанавливается к виду по умолчанию.
Шаг 2. Создайте файл расширения конфигурации
Расширения конфигурации добавляются через поля в ConfigMap coredns-custom:
Поля с суффиксом .include добавляются в серверный блок по умолчанию.
Поля с суффиксом .server добавляются как новые серверные блоки.
Создайте файл coredns-custom.yaml и сохраните манифест:
apiVersion: v1kind: ConfigMapmetadata:name: coredns-customnamespace: kube-systemdata:test.include: |hosts {10.0.0.1 example1.org10.0.0.2 example2.org10.0.0.3 example3.orgfallthrough}test.server: |test.ru:53 {forward foo.com 1.1.1.1}Выполните команду:
kubectl apply -f coredns-custom.yamlЕсли команда выполнена успешно, появится сообщение:
configmap/coredns-custom createdЧтобы применить изменения в ConfigMap и позволить Kubernetes Scheduler перезапустить CoreDNS, выполните команду:
kubectl -n kube-system rollout restart deployment corednsРезультат:
deployment.apps/coredns restartedПодождите 30–40 секунд.
Теперь любой запрос example1.org, example2.org, example3.org приходит на заданные IP-адреса, а все запросы к домену test.ru и его поддоменам автоматически перенаправляются на указанные внешние DNS-серверы foo.com и 1.1.1.1.
- Перед началом работы
- Шаг 1. Проверьте базовую конфигурацию CoreDNS
- Шаг 2. Создайте файл расширения конфигурации