Quiero configurar un reenviador condicional con CoreDNS en mi clúster de Amazon Elastic Kubernetes Service (Amazon EKS).
Breve descripción
Use CoreDNS para configurar un reenviador condicional para las consultas de DNS que se envían a los dominios que resuelve un servidor DNS personalizado. Para obtener más información, consulte Customizing DNS service en el sitio web de Kubernetes.
Importante: Antes de realizar cambios en la configuración del complemento de Amazon EKS CoreDNS, debe determinar qué ajustes administra Amazon EKS. Encontrará esta información en la configuración de complementos de Amazon EKS. Cuando se modifica un campo administrado por Amazon EKS, Amazon EKS no puede administrar el complemento. Amazon EKS podría sobrescribir los cambios cuando se actualice un complemento.
Solución
La siguiente solución se aplica a las configuraciones autoadministradas de CoreDNS y a las configuraciones de complementos de Amazon EKS.
Configuración de un complemento autoadministrado
Ejecute el siguiente comando para modificar el ConfigMap de CoreDNS y agregar la configuración personalizada del reenviador condicional de DNS:
$ kubectl -n kube-system edit configmap coredns
El resultado es similar al siguiente:
apiVersion: v1
kind: ConfigMap
metadata:
annotations:
labels:
eks.amazonaws.com/component: coredns
k8s-app: kube-dns
name: coredns
namespace: kube-system
data:
Corefile: |
.:53 {
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
domain-name:53 {
errors
cache 30
forward . custom-dns-server
reload
}
Nota: Reemplace domain-name por el nombre de su dominio y custom-dns-server por la dirección IP personalizada del servidor de DNS.
Configuración de un complemento de Amazon EKS
Para realizar los cambios en el complemento CoreDNS administrado por Amazon EKS, siga estos pasos:
-
Abra la consola de Amazon EKS.
-
En el panel de navegación, seleccione Clústeres.
-
Elija el nombre de su clúster.
-
Seleccione la pestaña Complementos.
-
Elija el complemento CoreDNS y, a continuación, Editar.
-
En la página de edición, seleccione la sección Valores de configuración opcionales. En la sección Valores de configuración, añada la configuración personalizada del reenviador condicional de DNS:
corefile: |
.:53 {
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
domain-name:53 {
errors
cache 30
forward . custom-dns-server
reload
}
Nota: Reemplace domain-name por el nombre de su dominio y custom-dns-server por la dirección IP personalizada del servidor de DNS.
Verificación de la resolución del nombre de dominio
Para comprobar si la resolución del nombre de dominio funciona, ejecute los siguientes comandos:
$ kubectl run busybox --restart=Never --image=busybox:1.28 -- sleep 3600
$ kubectl exec busybox -- nslookup domain-name
Nota:Reemplace elnombre de dominio por su nombre de dominio.