Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Kubernetes Service (AKS) usa CoreDNS para la administración y resolución de DNS del clúster con todos los clústeres 1.12.x y versiones posteriores. AKS es un servicio administrado, así que no puede modificar la configuración principal para CoreDNS (un archivo CoreFile). En su lugar, se usa una ConfigMapde Kubernetes para invalidar la configuración predeterminada. Para ver los archivos ConfigMap de CoreDNS predeterminados de AKS, use el comando kubectl get configmaps --namespace=kube-system coredns --output yaml.
En este artículo se muestra cómo usar ConfigMaps para las opciones básicas de personalización de CoreDNS en Azure Kubernetes Service (AKS).
Nota
Anteriormente, AKS utilizaba kube-dns para la administración y resolución de DNS del clúster, pero ahora es obsoleto.
kube-dns Ofrece diferentes opciones de personalización diferentes a través de una asignación de configuración de Kubernetes. CoreDNS no es compatible con versiones anteriores kube-dns. Debe actualizar las personalizaciones anteriores para trabajar con CoreDNS.
Prerrequisitos
- En este artículo se supone que tiene un clúster de AKS existente. Si necesita un clúster de AKS, puede crear uno mediante la CLI de Azure, Azure PowerShell o Azure Portal.
- Compruebe la versión de CoreDNS que está ejecutando. Los valores de configuración pueden cambiar entre versiones.
Soporte con complementos
Se admiten todos los complementos CoreDNS integrados. No se admite ningún complemento o complemento de terceros.
Importante
Al crear configuraciones como las de este artículo, los nombres que especifique en la data sección deben terminar en .server o .override. Esta convención de nomenclatura se define en el ConfigMap predeterminado de CoreDNS de AKS, que se puede ver con el comando kubectl get configmaps --namespace=kube-system coredns --output yaml.
Configurar reescrituras de nombres DNS
Cree un archivo denominado
corednsms.yamly pegue la siguiente configuración de ejemplo. Asegúrese de reemplazar<domain to be rewritten>por su propio nombre de dominio completo (FQDN).apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | <domain to be rewritten>.com:53 { log errors rewrite stop { name regex (.*)\.<domain to be rewritten>\.com {1}.default.svc.cluster.local answer name (.*)\.default\.svc\.cluster\.local {1}.<domain to be rewritten>.com } forward . /etc/resolv.conf # You can redirect this to a specific DNS server such as 10.0.0.10, but that server must be able to resolve the rewritten domain name }Importante
Si redirige a un servidor DNS, como la dirección IP del servicio CoreDNS, ese servidor DNS debe poder resolver el nombre de dominio reescrito.
Cree ConfigMap con el comando
kubectl apply configmapy especifique el nombre del manifiesto DE YAML.kubectl apply -f corednsms.yamlCompruebe que las personalizaciones se aplicaron mediante el
kubectl get configmapscomando .kubectl get configmaps --namespace=kube-system coredns-custom -o yamlRealice un reinicio gradual para volver a cargar configMap y habilitar el programador de Kubernetes para reiniciar CoreDNS sin tiempo de inactividad mediante el
kubectl rollout restartcomando .kubectl --namespace kube-system rollout restart deployment coredns
Especificar un servidor de reenvío para el tráfico de red
Cree un archivo denominado
corednsms.yamly pegue la siguiente configuración de ejemplo. Asegúrese de reemplazar elforwardnombre y<domain to be rewritten>por sus propios valores.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | # You can select any name here, but it must end with the .server file extension <domain to be rewritten>.com:53 { forward foo.com 1.1.1.1 }Cree el ConfigMap mediante el comando
kubectl apply configmap.kubectl apply -f corednsms.yamlRealice un reinicio gradual para volver a cargar configMap y habilitar el programador de Kubernetes para reiniciar CoreDNS sin tiempo de inactividad mediante el
kubectl rollout restartcomando .kubectl --namespace kube-system rollout restart deployment coredns
Uso de dominios personalizados
Es posible que quiera configurar dominios personalizados que solo se puedan resolver internamente. Por ejemplo, puede que quiera resolver el dominio personalizado puglife.local, que no es un dominio de nivel superior válido. Sin un ConfigMap de dominio personalizado, el clúster de AKS no puede resolver la dirección.
Cree un nuevo archivo denominado
corednsms.yamly pegue la siguiente configuración de ejemplo. Asegúrese de actualizar el dominio personalizado y la dirección IP con sus propios valores.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: puglife.server: | # You can select any name here, but it must end with the .server file extension puglife.local:53 { errors cache 30 forward . 192.11.0.1 # This is my test/dev DNS server }Cree el ConfigMap mediante el comando
kubectl apply configmap.kubectl apply -f corednsms.yamlRealice un reinicio gradual para volver a cargar configMap y habilitar el programador de Kubernetes para reiniciar CoreDNS sin tiempo de inactividad mediante el
kubectl rollout restartcomando .kubectl --namespace kube-system rollout restart deployment coredns
Configurar dominios stub
Cree un archivo denominado
corednsms.yamly pegue la siguiente configuración de ejemplo. Asegúrese de actualizar los dominios personalizados y las direcciones IP con sus propios valores.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | # You can select any name here, but it must end with the .server file extension abc.com:53 { errors cache 30 forward . 1.2.3.4 } my.cluster.local:53 { errors cache 30 forward . 2.3.4.5 }Cree configMap con el
kubectl apply configmapcomando y especifique.kubectl apply -f corednsms.yamlRealice un reinicio gradual para volver a cargar configMap y habilitar el programador de Kubernetes para reiniciar CoreDNS sin tiempo de inactividad mediante el
kubectl rollout restartcomando .kubectl --namespace kube-system rollout restart deployment coredns
Agregar asignaciones personalizadas de host a IP
Cree un archivo denominado
corednsms.yamly pegue la siguiente configuración de ejemplo. Asegúrese de actualizar las direcciones IP y los nombres de host con sus propios valores.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom # This is the name of the ConfigMap you can overwrite with your changes namespace: kube-system data: test.override: | # You can select any name here, but it must end with the .override file extension hosts { 10.0.0.1 example1.org 10.0.0.2 example2.org 10.0.0.3 example3.org fallthrough }Cree el ConfigMap mediante el comando
kubectl apply configmap.kubectl apply -f corednsms.yamlRealice un reinicio gradual para volver a cargar configMap y habilitar el programador de Kubernetes para reiniciar CoreDNS sin tiempo de inactividad mediante el
kubectl rollout restartcomando .kubectl --namespace kube-system rollout restart deployment coredns
Pasos siguientes
- Para solucionar problemas de CoreDNS, consulte Solución de problemas con CoreDNS en Azure Kubernetes Service (AKS).
- Para más información sobre el comportamiento de escalado automático de CoreDNS, consulte Escalado automático de CoreDNS en Azure Kubernetes Service (AKS).