Где хранятся конфигурации CoreDNS в Kubernetes

Где хранятся конфигурации CoreDNS в Kubernetes

Недавно я копался в CoreDNS на кластере, где kubeadm использовался для его установки. Я вижу, что у меня есть развертывание по умолчанию из 2 реплик, но что, если мне нужно больше? Я знаю, что могу масштабироваться, но это дополнительный шаг, который я предпочел бы не делать. Я хочу, чтобы все новые кластеры создавались с 3 CoreDNS для HA (так как у меня будет 3 мастера). Но я не могу найти никакой информации о том, где хранятся манифесты, которые использует kubeadm.

Я также хочу установить правила анти-сродства для модулей.

Возможно, мне также захочется настроить configmap CoreDNS.

Где хранятся конфигурации, которые kubeadm использует для установки и настройки CoreDNS?

решение1

Конфигурации CoreDNS жестко запрограммированы в файле manifest.go.https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/phases/addons/dns/manifests.go#L59

Поэтому, если вам нужны настройки, вы можете создать ответвление ветки kubeadm и создать свою собственную.

решение2

Проверить конфигурацию CoreDNS можно следующим образом.

kubectl describe configmap coredns  -n=kube-system 

Выход:

Name:         coredns
Namespace:    kube-system
Labels:       <none>
Annotations:  <none>

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
}


BinaryData
====

Events:  <none>

Как вступает в силу этот ConfigMap?

  1. CoreDNS определен в развертывании с 2 репликами.
  2. Конфигурационная карта монтируется в контейнер как том.

Вот определение этого развертывания.

kubectl describe deployment coredns -n=kube-system

введите описание изображения здесь

Ссылка

Связанный контент