nav-img
Облако VMware

Добавление статических записей в DNS

Для управления DNS в Managed Kubernetes используется СoreDNS.

Чтобы добавить адрес хоста для Master node в кластере Kubernetes, необходимо внести изменение в ConfigMap ресурса CoreDNS.

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

  1. Создайте кластер и группу узлов.

  2. Установите Kubernetes CLI (kubectl).

  3. Подключитесь к кластеру с помощью файла Kubeconfig.

Добавление адреса хоста в ConfigMap ресурса CoreDNS

  1. Используйте команду:

    kubectl edit cm coredns -n kube-system
  2. В открывшийся файл ConfigMap ресурса CoreDNS добавьте hosts с указанием необходимого адреса и дерективой fallthrough:

    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: coredns
    namespace: kube-system
    data:
    Corefile: |
    .:53 {
    errors
    health {
    lameduck 5s
    }
    ready
    kubernetes cluster.local in-addr.arpa ip6.arpa {
    pods insecure
    fallthrough in-addr.arpa ip6.arpa
    ttl 30
    }
    prometheus :9153
    forward . 8.8.8.8 77.88.8.8 {
    max_concurrent 1000
    }
    hosts {
    22.22.2.22 example.com
    fallthrough
    }
    cache 30
    loop
    reload
    loadbalance
    }

    Где:

    • 22.22.2.22 — IP-адрес.

    • example.com — URL.

  3. Сохраните изменения в Config Map ресурса CoreDNS.

  4. Перезапустите поды CoreDNS с помощью команды:

    kubectl rollout restart deploy coredns -n kube-system
  5. Проверьте, что поды перезапустились, с помощью команды:

    kubectl get pods -n kube-system | grep coredns

    При успешном перезапуске подов, ответ команды будет содержать список подов СoreDNS в статусе «Running»:

    coredns-5955vd879d-cnm6j 1/1 Running 0 35s
    coredns-5955cd879d-vklnq 1/1 Running 0 35s
  6. Проверьте, что внесенные изменения вступили в силу, с помощью пода prometheus. Для этого:

    1. Используйте команду:

      kubectl get pods - A

      Ответ команды будет содержать список всех подов. Скопируйте и сохраните название пода prometheus.

    2. Проверьте, что адрес успешно добавлен c помощью команды:

      kubectl exec -t -n kube-system prometheus-deployment-xxxxxxxxxx-xxxxx -- nslookup example.com

      Где:

      • prometheus-deployment-xxxxxxxxxx-xxxxx — название пода prometheus.

      • example.com — URL, добавленный в параметре hosts.

      Ответ команды будет содержать добавленный в hosts адрес.

      Name: example.com
      Address 1: 22.22.2.22 example.com