CoreDNS - DNS сервер, использующийся в инсталяциях Kubernetes’a по умолчанию

Добавляем кастомную запись DNS, чтобы она резолвилась в сущностях Kubernetes

Делать это не рекомендуется. Если до этого дошло - значит вы, скорее всего, что-то делаете не так. Однако иногда приходится.

  1. Настройка CoreDNS хранится в ConfigMap. Выглядеть он должен примерно следующим образом:
$ k get cm -n kube-system coredns -o yaml
apiVersion: v1
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 . /etc/resolv.conf {
           max_concurrent 1000
        }
        cache 30
        loop
        reload
        loadbalance
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2022-01-17T15:06:25Z"
  name: coredns
  namespace: kube-system
  resourceVersion: "1085497"
  uid: d6e7a2df-49b6-4122-b993-2e505dc7abd2
  1. Все, что нам нужно, это отредактировать этот ConfigMap добавив настройку hosts и прописать в ней нужные нам резолвы:
hosts {
   1.1.1.1 test.resolv.ru
   fallthrough
}
  1. Должно получиться что-то вроде:
$ k get cm -n kube-system coredns -o yaml
apiVersion: v1
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 . /etc/resolv.conf {
           max_concurrent 1000
        }
        cache 30
        loop
        reload
        loadbalance
        hosts {
            1.1.1.1 test.resolv.ru
            fallthrough
          }
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2022-01-17T15:06:25Z"
  name: coredns
  namespace: kube-system
  resourceVersion: "1085497"
  uid: d6e7a2df-49b6-4122-b993-2e505dc7abd2
  1. “Ребутаем” Pod’ы CodeDNS
$ kubectl delete pods -l k8s-app=kube-dns -n kube-system
  1. Все. Вы великолепны)