es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Conectando instancias de contenedores de Azure con los pods de AKS a través del DNS de AKS.

No puedo alcanzar el servidor DNS en k8s desde las instancias de contenedor de Azure.

Contexto:

Tengo 2 pods en un clúster Kubernetes de Azure AKS.

Pod1: nombre = pod1, IP interna = 10.34.33.112.

Pod2: nombre = pod2, IP interna = 10.34.33.155, IP de clúster = 10.34.104.109.

La IP del servicio DNS de AKS es 10.34.96.58.

Por lo tanto, desde pod1, espero que “nslookup pod2” devuelva:

(esto funciona como se esperaba)

/ # nslookup pod2
Servidor: 10.34.96.58
Dirección: 10.34.96.58:53

Nombre: pod2.default.svc.cluster.local
Dirección: 10.34.104.109

Azure Container Instances:

Cuando ejecuto comandos desde la instancia de contenedor, el ping a la IP interna de pod2 funciona.

Esto se debe a que están en la misma red virtual a través de un perfil de red.

ping 10.34.33.155

PING 10.34.33.155 (10.34.33.155): 56 datos bytes
64 bytes desde 10.34.33.155: seq=0 ttl=63 time=2.208 ms
64 bytes desde 10.34.33.155: seq=1 ttl=63 time=1.101 ms

Sin embargo,

nslookup pod2.default.svc.cluster.local 10.34.96.42

;; conexión agotada; no se pueden alcanzar servidores
“`
Incluso si especifico el servidor de nombres y la URL completa para el pod, no se puede alcanzar.
No puedo identificar dónde se está produciendo el bloqueo.

¿Alguna idea o mejores prácticas?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para no poder llegar al servidor DNS en k8s desde Azure Container Instances

    Si no puedes llegar al servidor DNS en k8s desde Azure Container Instances, entonces parece ser un problema de red. Los siguientes pasos podrían ayudar a diagnosticar y resolver el problema:

    1. Verifica el perfil de red de la instancia de contenedor de Azure y asegúrate de que forma parte de la misma Red Virtual que el clúster de Kubernetes de AKS.
    2. Verifica que la dirección IP del servicio DNS (10.34.96.58) del clúster de Kubernetes de AKS sea alcanzable desde la instancia de contenedor de Azure ejecutando un comando ping.

    3. Intenta realizar una búsqueda DNS desde la instancia de contenedor de Azure utilizando el comando nslookup con la dirección IP del servicio DNS de la siguiente manera:

      nslookup pod2.default.svc.cluster.local 10.34.96.58
      

      Si esto funciona, entonces es posible que el problema esté en la configuración DNS de la instancia de contenedor de Azure.

    4. Si el paso anterior no funciona, intenta ejecutar el comando nslookup con la dirección IP del servicio DNS y especifica la dirección IP de origen de la instancia de contenedor de Azure de la siguiente manera:

      nslookup pod2.default.svc.cluster.local 10.34.96.58 <ip_origen_de_la_instancia_de_contenedor_de_azure>
      

      La dirección IP de origen debe ser la dirección IP de la instancia de contenedor de Azure en la misma Red Virtual que el clúster de Kubernetes de AKS. Si esto funciona, entonces es posible que el problema esté en la configuración del firewall del clúster de Kubernetes de AKS.

    5. Verifica si existen grupos de seguridad de red (NSG) asociados a las subredes de la Red Virtual donde se implementan el clúster de Kubernetes de AKS y las instancias de contenedor de Azure. Si es así, asegúrate de que los NSG permitan el tráfico entre las subredes.

    6. También puedes intentar implementar un pod de prueba en el clúster de Kubernetes de AKS y realizar una búsqueda DNS desde el pod para verificar si el servicio DNS está funcionando correctamente.

    7. Siempre se recomienda utilizar Nombres de Dominio Completamente Calificados (FQDN) en lugar de direcciones IP para evitar este tipo de problemas como una práctica recomendada.

    Estos pasos deberían ayudar a diagnosticar y resolver el problema de no poder llegar al servidor DNS en k8s desde Azure Container Instances.

Comments are closed.