
Recientemente estuve investigando CoreDNS en un clúster donde se usaba kubeadm para instalarlo. Veo que tengo una implementación predeterminada de 2 réplicas, pero ¿qué pasa si quiero más? Sé que puedo escalar, pero ese es un paso adicional que preferiría no dar. Lo quiero para que todos los clústeres nuevos creados tengan 3 CoreDNS para HA (ya que tendré 3 Masters). Pero no puedo encontrar ninguna información sobre dónde se almacenan los manifiestos que utiliza kubeadm.
También quiero establecer reglas de antiafinidad de pods para los pods.
Es posible que también desee configurar el mapa de configuración de CoreDNS.
¿Dónde se almacenan las configuraciones que utiliza kubeadm para instalar y configurar CoreDNS?
Respuesta1
Las configuraciones para CoreDNS están codificadas en el archivo manifest.go.https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/phases/addons/dns/manifests.go#L59
Por lo tanto, si desea personalizaciones, puede bifurcar la rama kubeadm y crear la suya propia.
Respuesta2
Puede comprobar la configuración de CoreDNS de esta manera.
kubectl describe configmap coredns -n=kube-system
Producción:
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>
¿Cómo entra en vigor este ConfigMap?
- El CoreDNS se define en una implementación con 2 réplicas.
- El mapa de configuración se monta en el contenedor como un volumen.
Aquí está la definición de esta implementación.
kubectl describe deployment coredns -n=kube-system