Configuración del proveedor de DNS de clúster
Se asigna un nombre DNS (Sistema de nombres de dominio) a cada servicio del clúster de IBM Cloud® Kubernetes Service, que el proveedor de DNS del clúster registra para resolver solicitudes de DNS. Para obtener más información sobre el DNS para servicios y pods, consulta la documentación de Kubernetes.
El proveedor de DNS del clúster es CoreDNS, un servidor DNS de uso general y de referencia que ofrece una integración compatible con versiones anteriores, pero extensible, con
Kubernetes. Debido a que CoreDNS es un solo proceso ejecutable, tiene menos dependencias y partes móviles que puedan experimentar problemas que otros proveedores de DNS de clúster. El proyecto también se ha escrito en el mismo lenguaje que el
proyecto Kubernetes, Go, lo que ayuda a proteger la memoria. Por último, CoreDNS admite casos de uso más flexibles que otros proveedores de DNS en clúster, ya que permite crear entradas DNS personalizadas, como las configuraciones
habituales que se describen en la documentación de CoreDNS.
- CoreDNS y cambios en la configuración NodeLocal de la caché DNS en la versión 1.34 y posteriores
- El tiempo de caché DNS predeterminado en las configuraciones DNS NodeLocal y CoreDNS se ha aumentado de 30 segundos a 120 segundos. Este cambio se aplica a la ConfigMap configuración del almacenamiento en caché de DNS. Algunos usuarios alcanzaban los límites de tráfico de pDNS (o UDP ) debido a las frecuentes búsquedas de DNS provocadas por la corta duración de la caché. Rara vez es necesario un intervalo de caché de 30 segundos, excepto para los registros DNS que cambian con mucha frecuencia, por ejemplo, los puntos finales de comprobación de estado. Para la mayoría de las cargas de trabajo, una caché predeterminada de 120 segundos proporciona un mejor rendimiento y reduce el tráfico DNS innecesario. Los usuarios que necesiten tiempos de caché más cortos para casos de uso específicos pueden anular esta configuración.
Escalado automático del proveedor de DNS de clúster
De forma predeterminada, CoreDNS incluye un despliegue para escalar automáticamente los pods de CoreDNS como respuesta al número de nodos trabajadores y núcleos dentro del clúster. Puede ajustar los parámetros del programa de escalado automático de CoreDNS editando el mapa de configuración de escalado automático de CoreDNS. Por ejemplo, si las apps hacen un uso intensivo del proveedor de DNS de clúster, es posible que tenga que aumentar el número mínimo de pods de CoreDNS para dar soporte a la app. Para obtener más información, consulta la documentación de Kubernetes.
Antes de empezar: Inicie una sesión en su cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.
-
Verifique que el despliegue del programa de escalado automático de CoreDNS está disponible. En la salida de la CLI, verifique que haya un despliegue disponible (AVAILABLE).
kubectl get deployment -n kube-system coredns-autoscalerSalida de ejemplo
NAME READY UP-TO-DATE AVAILABLE AGE coredns-autoscaler 1/1 1 1 69d -
Edite los valores predeterminados correspondientes al programa de escalado automático de CoreDNS. Busque el campo
data.linear, que toma como valor predeterminado un pod CoreDNS por cada 16 nodos de trabajador o 256 núcleos, con un mínimo de dos pods CoreDNS independientemente del tamaño del clúster (preventSinglePointFailure: true). Para obtener más información, consulte la documentación de Kubernetes.kubectl edit configmap -n kube-system coredns-autoscalerSalida de ejemplo
apiVersion: v1 data: linear: '{"coresPerReplica":256,"nodesPerReplica":16,"preventSinglePointFailure":true}' kind: ConfigMap metadata: ...
Personalización del proveedor de DNS de clúster
Puede personalizar CoreDNS editando el mapa de configuración de CoreDNS. Por ejemplo, es posible que desee configurar dominios de apéndice y servidores DNS en sentido ascendente para resolver servicios que apunten a hosts externos. Además, puedes configurar varios Corefiles en CoreDNS ConfigMap. Para obtener más información, consulta la documentación de Kubernetes.
El almacenamiento en memoria caché de DNS de NodeLocal se basa en CoreDNS para mantener la memoria caché de las resoluciones de DNS. Para mantener la coherencia de la resolución de DNS, mantenga sin cambios la memoria caché de DNS
de NodeLocal y las configuraciones de CoreDNS aplicables, como los dominios de apéndice.
Antes de empezar: Inicie una sesión en su cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.
-
Verifique que el despliegue CoreDNS está disponible. En la salida de la CLI, verifique que haya un despliegue disponible (AVAILABLE).
kubectl get deployment -n kube-system corednsSalida de ejemplo
NAME READY UP-TO-DATE AVAILABLE AGE coredns 3/3 3 3 69d -
Edite los valores predeterminados correspondientes al mapa de configuración de CoreDNS. Utilice un archivo Corefile en la sección
datadel mapa de configuración para personalizar los dominios de apéndice (stub) y los servidores DNS en sentido ascendente. Para obtener más información, consulta la documentación de Kubernetes.El plugin
proxyde CoreDNS ha quedado en desuso y ha sido sustituido por el pluginforward. Si actualiza el mapa de configuración de CoreDNS, asegúrese de sustituir todas las instancias deproxyporforward.kubectl edit configmap -n kube-system corednsSalida de ejemplo de CoreDNS
apiVersion: v1 kind: ConfigMap metadata: name: coredns namespace: kube-system data: Corefile: | import <MyCorefile> .:53 { errors health { lameduck 10s } 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 { disable success cluster.local disable denial cluster.local } loop reload loadbalance } <MyCorefile>: | abc.com:53 { errors cache 30 loop forward . 1.2.3.4 } -
Opcional: añada archivos Corefile personalizados al mapa de configuración de CoreDNS. En el siguiente ejemplo, incluye el en
import <MyCoreFile>ladata.Corefilesección y completa la seccióndata.<MyCorefile>con tu información personalizada de Corefile. Para obtener más información, consulta la documentación sobre la importación de Corefile.El plugin
proxyde CoreDNS ha quedado en desuso y ha sido sustituido por el pluginforward. Si actualiza el mapa de configuración de CoreDNS, asegúrese de sustituir todas las instancias deproxyporforward.kubectl edit configmap -n kube-system corednsEjemplo de salida de Corefile personalizado
apiVersion: v1 kind: ConfigMap metadata: name: coredns namespace: kube-system data: Corefile: | import <MyCorefile> .:53 { errors health kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure upstream 172.16.0.1 fallthrough in-addr.arpa ip6.arpa } prometheus :9153 forward . /etc/resolv.conf { max_concurrent 1000 } cache 30 { disable success cluster.local disable denial cluster.local } loop reload loadbalance } <MyCorefile>: | abc.com:53 { errors cache 30 loop forward . 1.2.3.4 } -
Después de unos minutos, los pods de CoreDNS captan los cambios del mapa de configuración.
Configuración de memoria caché de DNS NodeLocal
Configure el agente de memoria caché de DNS NodeLocal en determinados nodos trabajadores para mejorar el rendimiento y la disponibilidad de DNS del clúster en el clúster de IBM Cloud Kubernetes Service. Para obtener más información,
consulta la documentación de Kubernetes.
De forma predeterminada, las solicitudes de DNS del clúster para los pods que utilizan una política de DNS
ClusterFirst se envían al servicio de DNS del clúster. Si habilita la colocación en memoria caché de DNS NodeLocal en un nodo trabajador, las solicitudes DNS del clúster para estos pods que se encuentran en el nodo
trabajador se envían en su lugar a la memoria caché de DNS local, que escucha en la dirección IP de enlace local 169.254.20.10. La memoria caché de DNS también escucha en la IP del clúster del servicio kube-dns en el espacio de
nombres kube-system.
No añada la etiqueta de memoria caché de DNS si ya utiliza DNS con distinción de zonas en el clúster. Además, el almacenamiento en memoria caché de DNS de NodeLocal se basa en CoreDNS para mantener
la memoria caché de las resoluciones de DNS. Para mantener la coherencia de la resolución de DNS, mantenga sin cambios la memoria caché de DNS de NodeLocal y las configuraciones de CoreDNS aplicables, como los dominios de apéndice.
- Versión 1.34 y anteriores
NodeLocalLa caché DNS es opcional. Debe habilitarlo manualmente añadiendo la etiquetaibm-cloud.kubernetes.io/node-local-dns-enabled=truea los nodos trabajadores.- Versión 1.35 y posteriores
NodeLocalLa caché DNS está activada por defecto en todos los nodos trabajadores. Los clusters que se actualizan a la versión 1.35 tienen NodeLocal DNS habilitado automáticamente a menos que se opte por no hacerlo. Para evitar la habilitación automática, aplique la etiquetaibm-cloud.kubernetes.io/node-local-dns-disabled=truea sus nodos trabajadores antes de actualizar.
Para obtener más información sobre los cambios de la versión 1.35, consulte la información sobre la versión 1.35.
Habilitación de la memoria caché de DNS NodeLocal
Habilite la memoria caché de DNS NodeLocal para uno o más nodos trabajadores en el clúster de Kubernetes.
- Versión 1.35 y posteriores
- NodeLocal DNS está activado por defecto en todos los nodos trabajadores. Siga estos pasos sólo si previamente desactivó NodeLocal DNS o si está añadiendo nuevos nodos de trabajo con NodeLocal DNS desactivado.
- Versión 1.34 y anteriores
- NodeLocal El DNS es opcional. Siga estos pasos para habilitarlo en sus nodos trabajadores.
Los pasos siguientes actualizan los pods de DNS que se ejecutan en nodos trabajadores específicos. También puede etiquetar la agrupación de nodos trabajadores de modo que los nodos futuros hereden la etiqueta.
Antes de empezar, actualice cualquier política de red de salida de DNS que se vea afectada por esta función, como las políticas que se basan en selectores de pod o de espacio de nombres para la salida de DNS.
kubectl get networkpolicy --all-namespaces -o yaml
-
Si personaliza dominios de apéndice y servidores DNS en sentido ascendente para CoreDNS, también debe personalizar la memoria caché de DNS de
NodeLocalcon estos dominios de apéndice y servidores DNS en sentido ascendente. -
Obtenga una lista de los nodos del clúster. Los pods del agente de almacenamiento en memoria caché de DNS
NodeLocalforman parte de un conjunto de daemons que se ejecuta en cada nodo.kubectl get nodes -
Añada la etiqueta
ibm-cloud.kubernetes.io/node-local-dns-enabled=trueal nodo trabajador. La etiqueta inicia el pod del agente de memoria caché de DNS en el nodo trabajador.- Añada la etiqueta a uno o varios nodos trabajadores.
-
Para etiquetar todos los nodos trabajadores del clúster: añada la etiqueta a todas las agrupaciones de nodos trabajadores existentes.
-
Para etiquetar un nodo trabajador individual:
kubectl label node <node_name> --overwrite "ibm-cloud.kubernetes.io/node-local-dns-enabled=true"
-
- Verifique que el nodo tiene la etiqueta comprobando que el campo
NODE-LOCAL-DNS-ENABLEDestá establecido entrue.
kubectl get nodes -L "ibm-cloud.kubernetes.io/node-local-dns-enabled" ``` Salida de ejemplo ```sh {: screen} NAME STATUS ROLES AGE VERSION NODE-LOCAL-DNS-ENABLED 10.xxx.xx.xxx Ready,SchedulingDisabled <none> 28h v1.35+IKS true ``` 3. Verifique que el pod del agente de almacenamiento en memoria caché de DNS se está ejecutando en el nodo trabajador. ```sh {: pre} kubectl get pods -n kube-system -l k8s-app=node-local-dns -o wide ``` Salida de ejemplo ```sh {: screen} NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES node-local-dns-pvnjn 1/1 Running 0 1m 10.xxx.xx.xxx 10.xxx.xx.xxx <none> <none> ``` - Añada la etiqueta a uno o varios nodos trabajadores.
-
Repita los pasos anteriores para cada nodo trabajador para habilitar la colocación en memoria caché de DNS.
Inhabilitación de la memoria caché de DNS NodeLocal
Puede inhabilitar la memoria caché de DNS NodeLocal para uno o para varios nodos trabajadores.
- Versión 1.35 y posteriores
-
Para desactivar NodeLocal DNS, que está activado por defecto, añada la etiqueta
ibm-cloud.kubernetes.io/node-local-dns-disabled=truea sus nodos trabajadores.kubectl label node --all --overwrite "ibm-cloud.kubernetes.io/node-local-dns-disabled=true" - Versión 1.34 y anteriores
-
Para desactivar NodeLocal DNS, elimine la etiqueta
ibm-cloud.kubernetes.io/node-local-dns-enabledde sus nodos trabajadores.
-
Elimine la etiqueta
ibm-cloud.kubernetes.io/node-local-dns-enableddel nodo trabajador. Esta acción finaliza el pod del agente de almacenamiento en memoria caché de DNS en el nodo trabajador.Ejecute el mandato siguiente para eliminar la etiqueta de todos los nodos de trabajador del clúster.
kubectl label node --all --overwrite "ibm-cloud.kubernetes.io/node-local-dns-enabled-"Ejecute el mandato siguiente para eliminar la etiqueta de un nodo de trabajador individual.
kubectl label node <node_name> "ibm-cloud.kubernetes.io/node-local-dns-enabled-"- Verifique que la etiqueta se ha eliminado comprobando que el campo
NODE-LOCAL-DNS-ENABLEDestá vacío.
kubectl get nodes -L "ibm-cloud.kubernetes.io/node-local-dns-enabled" ``` Salida de ejemplo ```sh {: screen} NAME STATUS ROLES AGE VERSION NODE-LOCAL-DNS-ENABLED 10.xxx.xx.xxx Ready,SchedulingDisabled <none> 28h v1.35+IKS ``` 2. Verifique que el pod ya no se está ejecutando en el nodo en el que está inhabilitada la memoria caché de DNS. La salida no muestra ningún pod. ```sh {: pre} kubectl get pods -n kube-system -l k8s-app=node-local-dns -o wide ``` Salida de ejemplo ```sh {: screen} No resources found. ``` - Verifique que la etiqueta se ha eliminado comprobando que el campo
-
Repita los pasos anteriores para cada nodo trabajador para inhabilitar la colocación en memoria caché de DNS.
Personalización de la memoria caché de DNS local
Puede personalizar la memoria caché de DNS NodeLocal editando cualquiera de las dos mapas de configuración.
- Mapa de configuración
node-local-dns: personalice la configuración de memoria caché de DNS deNodeLocal. - Mapa de configuración
node-local-dns-config: amplíe la configuración de la memoria caché de DNSNodeLocalmediante la personalización de dominios de apéndice y servidores DNS en sentido ascendente para resolver los servicios que apuntan a hosts externos.
El almacenamiento en memoria caché de DNS de NodeLocal se basa en CoreDNS para mantener la memoria caché de las resoluciones de DNS. Para mantener la coherencia de la resolución de DNS, mantenga sin cambios la memoria caché de DNS
de NodeLocal y las configuraciones de CoreDNS aplicables, como los dominios de apéndice.
Edición del mapa de configuración node-local-dns para actualizaciones generales de configuración
Edite el mapa de configuración node-local-dns para personalizar la configuración de la memoria caché de DNS de NodeLocal.
Antes de empezar: Inicie una sesión en su cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.
-
Verifique que el conjunto de daemons de memoria caché DNS de
NodeLocalesté disponible.kubectl get ds -n kube-system node-local-dnsSalida de ejemplo
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE node-local-dns 4 4 4 4 4 ibm-cloud.kubernetes.io/node-local-dns-enabled=true 82d -
Edite los valores predeterminados o añada Corefiles personalizados al mapa de configuración de memoria caché de DNS
NodeLocal. Cada Corefile que importe debe utilizar la vía de accesocoredns. Para obtener más información, consulta la documentación de Kubernetes.Solo se admite un conjunto limitado de complementos para la caché de DNS
NodeLocal.kubectl edit configmap -n kube-system node-local-dnsSalida de ejemplo
apiVersion: v1 kind: ConfigMap metadata: name: node-local-dns namespace: kube-system data: Corefile: | # Add your NodeLocal DNS customizations as import files under ./coredns directory. # Refer to /docs/containers?topic=containers-cluster_dns for details. import ./coredns/<MyCorefile> cluster.local:53 abc.com:53 { errors cache { success 9984 30 denial 9984 5 } reload loop bind 169.254.20.10 172.21.0.10 forward . __PILLAR__CLUSTER__DNS__ { force_tcp } prometheus :9253 health 169.254.20.10:8080 } in-addr.arpa:53 { errors cache 30 reload loop bind 169.254.20.10 172.21.0.10 forward . __PILLAR__CLUSTER__DNS__ { force_tcp } prometheus :9253 } ip6.arpa:53 { errors cache 30 reload loop bind 169.254.20.10 172.21.0.10 forward . __PILLAR__CLUSTER__DNS__ { force_tcp } prometheus :9253 } .:53 { errors cache 30 { disable success cluster.local disable denial cluster.local } reload loop bind 169.254.20.10 172.21.0.10 forward . __PILLAR__UPSTREAM__SERVERS__ { force_tcp } prometheus :9253 } <MyCorefile>: | # Add custom corefile content ... -
Después de unos minutos, los pods de memoria caché de DNS
NodeLocalcaptan los cambios del mapa de configuración.
Edición del mapa de configuración node-local-dns-config para ampliar con dominios de apéndice o servidores en sentido ascendente
Edite el mapa de configuración node-local-dns-config para ampliar la configuración de la memoria caché de DNS NodeLocal, por ejemplo para personalizar los dominios de apéndice o los servidores de DNS en sentido ascendente.
Para obtener más información, consulta la documentación de Kubernetes.
Antes de empezar: Inicie una sesión en su cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.
-
Verifique que el conjunto de daemons de memoria caché DNS de
NodeLocalesté disponible.kubectl get ds -n kube-system node-local-dnsSalida de ejemplo
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE node-local-dns 4 4 4 4 4 ibm-cloud.kubernetes.io/node-local-dns-enabled=true 82d -
Confirme que la memoria caché de DNS
NodeLocaltenga un mapa de configuración.- Determine si el mapa de configuración de memoria caché de DNS
NodeLocalexista.
kubectl get cm -n kube-system node-local-dns-config ``` Salida de ejemplo cuando no hay un mapa de configuración ```sh {: screen} Error from server (NotFound): ConfigMaps "node-local-dns-config" not found ``` 2. Si el mapa de configuración no existe, cree un mapa de configuración de memoria caché de DNS de `NodeLocal`. ```sh {: pre} kubectl create cm -n kube-system node-local-dns-config ``` Salida de ejemplo ```sh {: screen} configmap/node-local-dns-config created ``` - Determine si el mapa de configuración de memoria caché de DNS
-
Edite el mapa de configuración de memoria caché DNS
NodeLocal. El mapa de configuración utiliza la sintaxis de KubeDNS para personalizar los dominios de apéndice y los servidores DNS en sentido ascendente. Para obtener más información, consulta la documentación de Kubernetes.kubectl edit cm -n kube-system node-local-dns-configSalida de ejemplo
apiVersion: v1 kind: ConfigMap metadata: name: node-local-dns-config namespace: kube-system data: stubDomains: | {"abc.com" : ["1.2.3.4"]} -
Después de unos minutos, los pods de memoria caché de DNS
NodeLocalcaptan los cambios del mapa de configuración.
Configuración de DNS con distinción de zonas
Configure DNS con distinción de zonas para mejorar el rendimiento y la disponibilidad de DNS del clúster en su clúster multizona de IBM Cloud Kubernetes Service. Esta configuración
amplía la memoria caché de DNS NodeLocal para dar preferencia al tráfico de DNS de clúster dentro de la misma zona.
De forma predeterminada, el clúster está configurado con recursos DNS a nivel de clúster, no a recursos DNS con distinción de zonas. Incluso después de configurar un DNS con distinción de zonas, los recursos de DNS a nivel de clúster se siguen ejecutando como un DNS de reserva. Los recursos de DNS con distinción de zonas están separados del DNS a nivel de clúster y el cambio de DNS con distinción de zonas no afecta al DNS a nivel de clúster.
No utilice la etiqueta de memoria caché de DNS cuando utilice DNS con distinción de zonas en el clúster.
Configuración de DNS con distinción de zonas
Realice el paso siguiente para configurar DNS con reconocimiento de zona en el clúster multizona.
-
Actualice cualquier política de red de salida de DNS que se vea afectada por el DNS sensible a la zona, como las políticas que se basan en selectores de pod o de espacio de nombres para la salida de DNS. Ejecuta el siguiente comando para obtener una lista de tus políticas de red.
kubectl get networkpolicy --all-namespaces -o yaml -
Etiquete el
corednsConfigMap en el espacio de nombreskube-systemconibm-cloud.kubernetes.io/deploy-zone-aware-dns=true.kubectl label cm -n kube-system coredns --overwrite "ibm-cloud.kubernetes.io/deploy-zone-aware-dns=true" -
Renovar el maestro de clúster para desplegar los recursos DNS que tienen en cuenta las zonas.
ibmcloud ks cluster master refresh -c CLUSTER_NAME_OR_ID -
Espere a que finalice la operación de renovación; para ello revise el Estado del nodo maestro en los detalles del clúster.
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID -
Si personaliza dominios de apéndice y servidores DNS en sentido ascendente para CoreDNS, también debe personalizar la memoria caché de DNS de
NodeLocalcon estos dominios de apéndice y servidores DNS en sentido ascendente. -
Defina una variable de entorno para las zonas del clúster.
ZONES=$(kubectl get nodes --no-headers --ignore-not-found=true -o jsonpath='{range .items[*]}{.metadata.labels.topology\.kubernetes\.io/zone}{"\n"}{end}' | uniq) -
Inicie los pods de CoreDNS y del programa de escalado automático de CoreDNS en todas las zonas.
for ZONE in ${ZONES}; do kubectl scale deployment -n kube-system "coredns-autoscaler-${ZONE}" --replicas=1 done -
Compruebe que los pods de CoreDNS y del programa de escalado automático de CoreDNS se están ejecutando en todas las zonas.
for ZONE in ${ZONES}; do kubectl get pods -n kube-system -l "k8s-app=coredns-autoscaler-${ZONE}" -o wide kubectl get pods -n kube-system -l "k8s-app=coredns-${ZONE}" -o wide done -
Inicie los pods de memoria caché de DNS
NodeLocalen todos los nodos trabajadores.kubectl label nodes --all --overwrite "ibm-cloud.kubernetes.io/zone-aware-dns-enabled=true" -
Verifique que los pods de memoria caché de DNS
NodeLocalse están ejecutando en todos los nodos trabajadores.for ZONE in ${ZONES}; do kubectl get pods -n kube-system -l "k8s-app=node-local-dns-${ZONE}" -o wide done -
Etiquete sus agrupaciones de nodos trabajadores para que los nodos trabajadores futuros hereden la etiqueta
ibm-cloud.kubernetes.io/zone-aware-dns-enabled=true.
Inhabilitación y supresión de DNS con distinción de zonas
Para eliminar DNS con distinción de zonas, primero tiene que inhabilitar DNS con distinción de zonas cada zona del clúster multizonas. A continuación, suprima los recursos de DNS con distinción de zonas.
-
Elimine la etiqueta
ibm-cloud.kubernetes.io/zone-aware-dns-enabled=truede las agrupaciones de nodos trabajadores. -
Defina una variable de entorno para las zonas del clúster.
ZONES=$(kubectl get nodes --no-headers --ignore-not-found=true -o jsonpath='{range .items[*]}{.metadata.labels.topology\.kubernetes\.io/zone}{"\n"}{end}' | uniq) -
Detenga los pods de memoria caché de DNS
NodeLocalen todos los nodos trabajadores.kubectl label nodes --all --overwrite "ibm-cloud.kubernetes.io/zone-aware-dns-enabled-" -
Detenga los pods del programa de escalado automático de CoreDNS en todas las zonas.
for ZONE in ${ZONES}; do kubectl scale deployment -n kube-system "coredns-autoscaler-${ZONE}" --replicas=0 done -
Compruebe que los pods del programa de escalado automático de CoreDNS ya no se están ejecutando en ninguna zona.
for ZONE in ${ZONES}; do kubectl get pods -n kube-system -l "k8s-app=coredns-autoscaler-${ZONE}" done -
Detenga los pods de CoreDNS en todas las zonas.
for ZONE in ${ZONES}; do kubectl scale deployment -n kube-system "coredns-${ZONE}" --replicas=0 done -
Elimine la etiqueta
ibm-cloud.kubernetes.io/deploy-zone-aware-dns=truedel mapa de configuracióncorednsen el espacio de nombreskube-system.kubectl label cm -n kube-system coredns --overwrite "ibm-cloud.kubernetes.io/deploy-zone-aware-dns-" -
Renueve el nodo maestro del clúster para suprimir los recursos de DNS con distinción de zonas.
ibmcloud ks cluster master refresh --cluster CLUSTER_NAME_OR_ID -
Espere a que finalice la operación de renovación; para ello revise el Estado del nodo maestro en los detalles del clúster.
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID