Добавление статических записей в 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