PowerFlex: El sondeo HTTP falló con el código de estado: 503

Samenvatting: En este artículo, se explica un problema en el que el pod keycloak-0 informa de un error de evaluación del estado debido a problemas de conectividad de la base de datos causados por una configuración de DNS incorrecta. Este problema afecta a los servicios de autenticación administrados por keycloak ...

Dit artikel is van toepassing op Dit artikel is niet van toepassing op Dit artikel is niet gebonden aan een specifiek product. Niet alle productversies worden in dit artikel vermeld.

Symptomen

Una de las dos vainas de Keycloak (aquí keycloak-0) experimenta problemas de conectividad con la base de datos, mientras que keycloak-1 sigue siendo funcional.

En los registros de eventos, se muestran fallas repetidas del sondeo de preparación.

# kubectl get pods -n powerflex | egrep keycloak
keycloak-0                                                1/1     Running     0               22d
keycloak-1                                                1/1     Running     0               22d

# kubectl get events | egrep kube
Events:
  Type     Reason     Age                 From     Message
  ----     ------     ----                ----     -------
  Warning  Unhealthy  12m (x58 over 17h)  keycloak-0  Readiness probe failed: HTTP probe failed with statuscode: 503

 

Los registros del pod keycloak indican una falla en la adquisición de conexiones JDBC debido a un tiempo de espera agotado de adquisición:

# kubectl get logs keycloak-0 -n powerflex
..
2024-11-27 07:01:41,593 INFO  [org.infinispan.CLUSTER] (non-blocking-thread--p2-t126) [Context=actionTokens] ISPN100010: Finished rebalance with members [keycloak-0-17437, keycloak-1-41022], topology id 7
2024-11-27 07:31:03,379 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Timer-0) SQL Error: 0, SQLState: null
2024-11-27 07:31:03,379 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Timer-0) Acquisition timeout while waiting for new connection
2024-11-27 07:31:03,384 ERROR [org.keycloak.services.scheduled.ScheduledTaskRunner] (Timer-0) Failed to run scheduled task ClearExpiredEvents: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
        at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
        at java.base/java.util.TimerThread.run(Timer.java:506)
Caused by: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection  <---------
..
Caused by: java.sql.SQLException: Acquisition timeout while waiting for new connection  <--------- 
.. 
Caused by: java.util.concurrent.TimeoutException  <--------- 
..
2024-11-27 09:31:03,476 INFO  [io.smallrye.health] (executor-thread-15) SRHCK01001: Reporting health down status: {"status":"DOWN","checks":[{"name":"Keycloak database connections health check","status":"DOWN","data":{"Failing since":"2024-11-27 07:31:03,477"}}]}
2024-11-27 09:56:03,477 INFO  [io.smallrye.health] (executor-thread-15) SRHCK01001: Reporting health down status: {"status":"DOWN","checks":[{"name":"Keycloak database connections health check","status":"DOWN","data":{"Failing since":"2024-11-27 07:31:03,477"}}]}

 

Impacto

Solicitudes de autenticación gestionadas por keycloak-0 falla, lo que provoca fallas de autenticación intermitentes o completas para la PFMP.
La evaluación del estado de Keycloak informa continuamente de un DOWN Estado, lo que afecta a la alta disponibilidad.

Oorzaak

El problema se produce debido a una configuración incorrecta de DNS.

La conexión JDBC utilizada por keycloak Para conectarse a la base de datos, depende de resolver el nombre de host o el terminal de la base de datos.

Cualquier error de configuración o falla en la resolución del nombre de host puede causar tiempos de espera agotados cuando se intenta establecer una conexión. 

Oplossing

1) Corrija la configuración de DNS según la documentación del sistema operativo

a) Si RedHat o CentOS v7,x o v8,x,

i) Editar /etc/resolv.conf para actualizar el servidor DNS correcto en cada MgmtVM (MVM)

ii) Suprímase el coredns vainas (rke2-coredns-rke2-coredns-xxxxxxxxxx-xxxxx) para propagar los cambios a esos pods:

for x in `kubectl get pods -n kube-system | grep -i rke2-coredns-rke2-coredns | awk '{print $1}' | grep -iv auto`; do kubectl delete pods -n kube-system $x; done

 

iii) Verificar que los cambios en el DNS ahora se reflejen en el coredns pods (hay 2 coredns pods responsables de DNS): 

for x in `kubectl get pods -n kube-system | grep -i rke2-coredns-rke2-coredns | awk '{print $1}' | grep -iv auto`; do echo $x; kubectl exec -it $x -n kube-system -- cat /etc/resolv.conf; echo " "; done

 

b) Si tiene SLES v15.xy versiones posteriores, comuníquese con el soporte para seguir el artículo PowerFlex 4.x: Cómo actualizar servidores DNS

2) Reiniciar keycloak Vainas

kubectl rollout restart statefulset keycloak -n powerflex 

 

3) Monitor keycloak Registros de cualquier problema adicional de conectividad de base de datos 

kubectl logs keycloak-0 -n powerflex [-f]
kubectl logs keycloak-1 -n powerflex [-f]



Versiones afectadas

 No es un problema del producto

Producten

PowerFlex rack, PowerFlex Appliance, PowerFlex custom node, ScaleIO, PowerFlex appliance connectivity
Artikeleigenschappen
Artikelnummer: 000261288
Artikeltype: Solution
Laatst aangepast: 03 jan. 2026
Versie:  2
Vind antwoorden op uw vragen via andere Dell gebruikers
Support Services
Controleer of uw apparaat wordt gedekt door Support Services.