
Ich habe mich kürzlich mit CoreDNS auf einem Cluster beschäftigt, auf dem es mit kubeadm installiert wurde. Ich sehe, dass ich standardmäßig 2 Replikate bereitgestellt habe, aber was ist, wenn ich mehr möchte? Ich weiß, dass ich skalieren kann, aber das ist ein zusätzlicher Schritt, den ich lieber nicht machen möchte. Ich möchte, dass alle neu erstellten Cluster 3 CoreDNS für HA haben (da ich 3 Master haben werde). Aber ich kann keine Informationen darüber finden, wo die Manifeste gespeichert sind, die kubeadm verwendet.
Ich möchte auch Anti-Affinitätsregeln für die Pods festlegen.
Möglicherweise möchte ich auch die CoreDNS-Konfigurationskarte konfigurieren.
Wo werden die Konfigurationen gespeichert, die kubeadm zur Installation und Konfiguration von CoreDNS verwendet?
Antwort1
Die Konfigurationen für CoreDNS sind fest in der Datei manifest.go codiert.https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/phases/addons/dns/manifests.go#L59
Wenn Sie Anpassungen wünschen, können Sie daher den Kubeadm-Zweig forken und Ihren eigenen erstellen.
Antwort2
Auf diese Weise können Sie die Konfiguration von CoreDNS überprüfen.
kubectl describe configmap coredns -n=kube-system
Ausgabe:
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>
Wie wirkt sich diese ConfigMap aus?
- Das CoreDNS ist in einer Bereitstellung mit 2 Replikaten definiert.
- Die Konfigurationskarte wird als Volume im Container bereitgestellt.
Hier ist die Definition dieser Bereitstellung.
kubectl describe deployment coredns -n=kube-system