
Eu estava investigando o CoreDNS recentemente em um cluster onde o kubeadm foi usado para instalá-lo. Vejo que tenho uma implantação padrão de 2 réplicas, mas e se eu quiser mais? Eu sei que posso escalar, mas esse é um passo extra que prefiro não dar. Quero que todos os novos clusters criados tenham 3 CoreDNS para HA (já que terei 3 Masters). Mas não consigo encontrar nenhuma informação sobre onde os manifestos usados pelo kubeadm estão armazenados.
Também quero definir regras de antiafinidade para os pods.
Também posso querer configurar o mapa de configuração do CoreDNS.
Onde estão armazenadas as configurações que o kubeadm usa para instalar e configurar o CoreDNS?
Responder1
As configurações do CoreDNS são codificadas no arquivo manifest.go.https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/phases/addons/dns/manifests.go#L59
Portanto, se você quiser personalizações, poderá bifurcar o branch kubeadm e construir o seu próprio.
Responder2
Você pode verificar a configuração do CoreDNS desta forma.
kubectl describe configmap coredns -n=kube-system
Saída:
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>
Como este ConfigMap entra em vigor?
- O CoreDNS é definido em uma implantação com 2 réplicas.
- O configmap é montado no contêiner como um volume.
Aqui está a definição desta implantação.
kubectl describe deployment coredns -n=kube-system