Onde estão as configurações do CoreDNS armazenadas no Kubernetes

Onde estão as configurações do CoreDNS armazenadas no Kubernetes

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?

  1. O CoreDNS é definido em uma implantação com 2 réplicas.
  2. O configmap é montado no contêiner como um volume.

Aqui está a definição desta implantação.

kubectl describe deployment coredns -n=kube-system

insira a descrição da imagem aqui

Referência

informação relacionada