Descripción general
Introducción a CoreDNS
Cuando se crea un clúster, el complemento de coredns se instala para resolver nombres de dominio en el clúster.
Puede ver el pod del complemento de coredns en el espacio de nombres del kube-system.
$ kubectl get po --namespace=kube-system NAME READY STATUS RESTARTS AGE coredns-7689f8bdf-295rk 1/1 Running 0 9m11s coredns-7689f8bdf-h7n68 1/1 Running 0 11m
Después de instalar coredns, se convierte en un DNS. Después de crear el Service, coredns registra el nombre del Service y la dirección IP. De esta manera, el pod puede obtener la dirección IP del Service consultando el nombre del Service desde coredns.
nginx.<namespace>.svc.cluster.local se utiliza para acceder al Service. nginx es el nombre del Service, <namespace> es el espacio de nombres y svc.cluster.local es el sufijo del nombre de dominio. En uso real, puede omitir <namespace>.svc.cluster.local en el mismo espacio de nombres y usar el ServiceName.
Una ventaja de usar ServiceName es que puede escribir ServiceName en el programa al desarrollar la aplicación. De esta manera, no es necesario conocer la dirección IP de un Service específico.
Después de instalar el complemento de coredns, también hay un Service en el espacio de nombres de kube-system, como se muestra a continuación.
$ kubectl get svc -n kube-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE coredns ClusterIP 10.247.3.10 <none> 53/UDP,53/TCP,8080/TCP 13d
De forma predeterminada, después de crear otros pods, la dirección del Service de coredns se escribe como la dirección del servidor de resolución de nombres de dominio en el archivo /etc/resolv.conf del pod. Cree un pod y vea el archivo /etc/resolv.conf de la siguiente manera:
$ kubectl exec test01-6cbbf97b78-krj6h -it -- /bin/sh / # cat /etc/resolv.conf nameserver 10.247.3.10 search default.svc.cluster.local svc.cluster.local cluster.local options ndots:5 timeout single-request-reopen
Cuando un usuario accede al Service name:Port del pod Nginx, la dirección IP del Service Nginx se resuelve desde CoreDNS y, a continuación, se accede a la dirección IP del Service Nginx. De esta manera, el usuario puede acceder al pod backend de Nginx.
Operaciones relacionadas
También puede configurar DNS en una carga de trabajo. Para obtener más información, véase Configuración de DNS.
También puede usar coredns para implementar la resolución de nombres de dominio definida por el usuario. Para obtener más información, véase Uso de CoreDNS para la resolución personalizada de nombres de dominio.
También puede utilizar DNSCache para mejorar el rendimiento de la resolución de DNS. Para obtener más información, véase Uso de DNSCache de NodeLocal para mejorar el rendimiento de DNS.