Solicitar tiempo entre las cápsulas AKS
Tengo un grupo de Kubernetes dentro de Azure que tiene algunos servicios y cápsulas. Quiero que esas cápsulas se comuniquen entre sí pero cuando trate de ejecutar una CURL/WGET de uno a otro, se produce un tiempo fuera.
El servicio A continuación se pueden encontrar YAMLs:
Primer servicio:
apiVersion: v1
kind: Service
metadata:
labels:
app: core-node
name: core-node
spec:
ports:
- name: "9001"
port: 9001
targetPort: 8080
selector:
app: core-node
status:
loadBalancer: {}
Segundo servicio:
apiVersion: v1
kind: Service
metadata:
labels:
app: core-python
name: core-python
spec:
ports:
- name: "9002"
port: 9002
targetPort: 8080
selector:
app: core-python
status:
loadBalancer: {}
Cuando me estoy conectando a la cápsula "core-node" por ejemplo a través de sh y tratar de ejecutar el siguiente comando, se obtiene un timeout. Sucede también si intento la cápsula "core-python" al otro.
wget core-python:9002
wget: can't connect to remote host (some ip): Operation timed out
También intenté utilizar la IP directamente y también intentar cambiar de ClusterIP a LoadBalancerPero sucede lo mismo. Tengo una configuración proxy también, pero esto se hace principalmente en Ingresos nivel y no debe afectar la comunicación entre PODS a través de nombres de servicio, al menos por lo que sé. Los Pods están dentro corriendo estatus y sus API pueden accederse a través de las URL públicas expuestas a través de Ingress.
#EDIT1:
He conectado también a uno de los PODs y he comprobado si el puerto 8080 está escuchando y parece bien desde mi perspectiva.
netstat -nat | grep LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
#EDIT2:
Cuando hago un endpoints comprobar para este servicio, devuelve lo siguiente:
kubectl get ep core-node
NAME ENDPOINTS AGE
core-node 10.x.x.x:8080 37m
Si intento wget este IP de la otra cápsula, responde:
wget 10.x.x.x:8080
Connecting to 10.x.x.x:8080 (10.x.x.x:8080)
wget: server returned error: HTTP/1.1 404 Not Found
Pregunta hecha hace 3 años, 5 meses, 5 días - Por devepicenter
2 Respuestas:
-
El error que estás experimentando al intentar comunicarte entre las cápsulas AKS puede deberse a algunos problemas comunes. Aquí hay algunas sugerencias para solucionar este problema:
- Verificar la configuración de red: Asegúrate de que las cápsulas estén en la misma red dentro del clúster y que puedan comunicarse entre sí. Puedes comprobar la configuración de red en AKS para garantizar que no haya restricciones de red que estén causando el tiempo de espera.
- Especificar el protocolo en la URL: Cuando realizas una solicitud con `wget`, es importante especificar el protocolo en la URL. Por ejemplo, puedes probar usando `wget http://core-python:9002`.
- Verificar la configuración de los servicios: Revisa los YAML de los servicios para asegurarte de que los puertos y los selectores estén configurados correctamente. También verifica que los Pods estén etiquetados correctamente con los selectores especificados en los servicios.
- Comprobar los endpoints: Si la comprobación de endpoints muestra la dirección IP correcta pero aún experimentas problemas, podría ser un problema con la configuración de los servicios o los pods. Asegúrate de que los endpoints estén correctamente asociados a las cápsulas correspondientes.
- Habilitar el registro de eventos: Puedes habilitar el registro de eventos en Kubernetes para obtener más información sobre posibles problemas de comunicación entre las cápsulas. Los registros de eventos te pueden proporcionar pistas sobre lo que está causando el tiempo de espera.
- Verificar la configuración del firewall: Si estás utilizando firewalls en Azure, asegúrate de que las reglas de firewall permitan la comunicación entre las cápsulas en los puertos especificados.
- Consultar la documentación de Azure: Revisa la documentación oficial de Azure para obtener orientación específica sobre la configuración de comunicación entre cápsulas dentro de un clúster AKS.
Intenta seguir estos pasos para investigar y solucionar el problema de tiempo de espera al comunicarte entre las cápsulas AKS. Si necesitas ayuda adicional, no dudes en preguntar.
Respondida el Dec 18, 2020 a las 09:39 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Posibles causas y soluciones:
1. Política de red:
Verifica que no haya políticas de red que bloqueen la comunicación entre las cápsulas. Ejecuta
kubectl get netpol
para listar políticas de red y comprueba si hay reglas que restrinjan el tráfico entre las cápsulas.2. Configuración del servicio:
Asegúrate de que los puertos de destino en los servicios estén mapeados correctamente al puerto expuesto por las cápsulas. Verifica que el tipo de servicio sea
ClusterIP
oNodePort
.3. Salud de la cápsula:
Ejecuta
kubectl get pods -o wide
para comprobar el estado de las cápsulas. Asegúrate de que las cápsulas estén ejecutándose y que no haya errores.4. Problemas de firewall:
Comprueba que no haya firewalls bloqueando la comunicación entre las cápsulas. Ejecuta
nslookup core-node
ynslookup core-python
para resolver los nombres de servicio y verificar que se resuelven en las direcciones IP correctas.5. Rutas de red:
Ejecuta
kubectl exec -it <pod-name> -- nslookup core-python
para verificar que las cápsulas puedan resolver los nombres de servicio. Comprueba que las rutas de red permitan la comunicación entre las cápsulas.Pasos adicionales:
Intenta conectarte a la cápsula de destino directamente usando su dirección IP:
wget <pod-ip>:<port>
. Activa el registro de depuración en Kubernetes para obtener más información sobre la comunicación de red:kubectl logs -l k8s-app=kube-dns
. * Verifica si hay conflictos de nombres de servicio.Respondida el Dec 18, 2020 a las 09:51 - por Gemini
Votos positivos: 0 | Votos negativos: 0