Evolution
Тема интерфейса

Настроить CoreDNS в Managed Kubernetes

Эта статья полезна?

Пользователи Managed Kubernetes могут переопределить настройки CoreDNS по умолчанию, используя Kubernetes ConfigMap. В инструкции описано, как использовать ConfigMaps для настройки параметров CoreDNS в Managed Kubernetes.

Поддерживаются все встроенные плагины CoreDNS. Сторонние и дополнительные плагины не поддерживаются.

Перед началом работы

  1. Создайте кластер Managed Kubernetes и хотя бы одну группу узлов.

Шаг 1. Проверьте базовую конфигурацию CoreDNS

В терминале или PowerShell выполните команду:

kubectl get configmap -n kube-system coredns -o yaml

Не изменяйте ConfigMap coredns. При обновлении версии плагина CoreDNS или изменении параметров coredns автоматически восстанавливается к виду по умолчанию.

Шаг 2. Создайте файл расширения конфигурации

Расширения конфигурации добавляются через поля в ConfigMap coredns-custom:

  • Поля с суффиксом .include добавляются в серверный блок по умолчанию.

  • Поля с суффиксом .server добавляются как новые серверные блоки.

  1. Создайте файл coredns-custom.yaml и сохраните манифест:

    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: coredns-custom
    namespace: kube-system
    data:
    test.include: |
    hosts {
    10.0.0.1 example1.org
    10.0.0.2 example2.org
    10.0.0.3 example3.org
    fallthrough
    }
    test.server: |
    test.ru:53 {
    forward foo.com 1.1.1.1
    }
  2. Выполните команду:

    kubectl apply -f coredns-custom.yaml

    Если команда выполнена успешно, появится сообщение:

    configmap/coredns-custom created
  3. Чтобы применить изменения в 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.