
Недавно я копался в 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?
- CoreDNS определен в развертывании с 2 репликами.
- Конфигурационная карта монтируется в контейнер как том.
Вот определение этого развертывания.
kubectl describe deployment coredns -n=kube-system