Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
¿Cómo se resuelven los errores HTTP 503 (Servicio no disponible) al acceder a un servicio de Kubernetes en un clúster de Amazon EKS?
Aparecen errores HTTP 503 (Servicio no disponible) al conectarse a un servicio de Kubernetes que se ejecuta en el clúster de Amazon Elastic Kubernetes Service (Amazon EKS).
Descripción corta
Los errores HTTP 503 son errores del servidor. Se producen al conectarse a un pod del servicio de Kubernetes ubicado en un clúster de Amazon EKS que está configurado para un equilibrador de carga.
Para solucionar los errores HTTP 504, consulte ¿Cómo resuelvo los errores HTTP 504 en Amazon EKS?
Para solucionar los errores HTTP 503, siga los siguientes pasos de resolución de problemas.
Resolución
Verifique si la etiqueta del pod coincide con el valor especificado en el selector de servicio de Kubernetes
1. Ejecute el siguiente comando para obtener el valor del selector:
$ kubectl describe service service_name -n your_namespace
Nota: Sustituya service_name por el nombre del servicio y your_namespace por el espacio de nombres del servicio.
Salida de ejemplo:
Name: service-name Namespace: pod-name Labels: none Annotations: none Selector: app.kubernetes.io/name=namespace Type: NodePort IP Families: none IP: 10.100.17.189 IPs: 10.100.17.189 Port: unset 80/TCP TargetPort: 80/TCP NodePort: unset 31560/TCP Endpoints: none Session Affinity: none External Traffic Policy: Cluster Events: none
En la salida anterior, el valor del selector de ejemplo es app.kubernetes.io/name=namespace.
2. Verifique si hay pods con la etiqueta app.kubernetes.io/name=namespace:
$ kubectl get pods -n your_namespace -l "app.kubernetes.io/name=namespace"
Salida de ejemplo:
No resources found in your_namespace namespace.
Si no se encuentran recursos con el valor buscado, se produce un error HTTP 503.
Verifique que se ejecuten los pods definidos para el servicio de Kubernetes
Utilice la etiqueta en el selector del servicio de Kubernetes para verificar que los pods existen y que se encuentran en estado de ejecución:
$ kubectl -n your_namespace get pods -l "app.kubernetes.io/name=your_namespace"
Salida:
NAME READY STATUS RESTARTS AGE POD_NAME 0/1 ImagePullBackOff 0 3m54s
Verifique si los pods pueden pasar el sondeo de preparación para la implementación de Kubernetes
1. Verifique que los pods de la aplicación pueden pasar el sondeo de preparación. Para obtener más información, consulte Configurar los sondeos de actividad, preparación y puesta en marcha (del sitio web de Kubernetes).
2. Verifique el sondeo de preparación del pod:
$ kubectl describe pod pod_name -n your_namespace | grep -i readiness
Nota: sustituya pod_name por el nombre del pod y your_namespace por el espacio de nombres.
Salida de ejemplo:
Readiness: tcp-socket :8080 delay=5s timeout=1s period=2s #success=1 #failure=3 Warning Unhealthy 2m13s (x298 over 12m) kubelet Readiness probe failed:
En la salida anterior, se puede ver que no se aprobó el sondeo de preparación.
Nota: Este paso proporciona una salida útil solo si la aplicación escucha en la ruta y el puerto correctos. Compruebe la salida de cURL con el comando curl -Ivk y asegúrese de que la ruta definida en el nivel de servicio recibe una respuesta válida. Por ejemplo, 200 ms es una buena respuesta.
Comprobar la capacidad del equilibrador de carga clásico
Si obtiene un error HTTP 503 intermitente, significa que el balanceador de carga clásico no tiene suficiente capacidad para manejar la solicitud. Para resolver este problema, asegúrese de que el balanceador de carga clásico tenga suficiente capacidad y que los nodos de trabajo puedan manejar la tasa de solicitudes.
Verifique que las instancias estén registradas
También aparece un error HTTP 503 si no hay instancias registradas. Para resolver este problema, intente aplicar las siguientes soluciones:
- Verifique que los grupos de seguridad correspondientes al nodo de trabajo tengan una regla de entrada que permita a los nodos de trabajo acceder al puerto del nodo. Además, verifique que ninguna regla NAT bloquee el tráfico de red en los rangos de puertos del nodo.
- Verifique que el grupo de seguridad personalizado especificado para el balanceador de carga clásico tenga permitido el acceso entrante en los nodos de trabajo.
- Asegúrese de que hay nodos de trabajo en cada Zona de Disponibilidad especificada por las subredes.
Información relacionada
HTTP 503: el servicio no está disponible
Monitoree el balanceador de carga clásico
Monitoree los balanceadores de carga de aplicaciones
Solucionar los problemas de un balanceador de carga clásico: errores HTTP

Contenido relevante
- preguntada hace 2 meseslg...
- preguntada hace un meslg...
- preguntada hace un meslg...
- preguntada hace 21 díaslg...
- Respuesta aceptadapreguntada hace 18 díaslg...
- OFICIAL DE AWSActualizada hace 4 años
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace un año