PowerFlex: HTTP-Test mit Statuscode: 503 fehlgeschlagen

Zusammenfassung: In diesem Artikel wird ein Problem beschrieben, bei dem der keycloak-0-Pod einen Fehler bei der Integritätsprüfung aufgrund von Datenbankverbindungsproblemen meldet, die durch eine falsche DNS-Konfiguration verursacht werden. Dieses Problem wirkt sich auf Authentifizierungsservices aus, die von Keycloak verwaltet werden ...

Dieser Artikel gilt für Dieser Artikel gilt nicht für Dieser Artikel ist nicht an ein bestimmtes Produkt gebunden. In diesem Artikel werden nicht alle Produktversionen aufgeführt.

Symptome

Einer der beiden Keycloak-Pods (hier keycloak-0) Konnektivitätsprobleme mit der Datenbank haben, während keycloak-1 funktionsfähig bleibt.

Ereignisprotokolle zeigen wiederholte Fehler bei Bereitschaftstests an.

# 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

 

Die Keycloak-Pod-Protokolle weisen auf einen Fehler beim Abrufen von JDBC-Verbindungen aufgrund eines Erfassungs-Timeouts hin:

# 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"}}]}

 

Auswirkungen

Authentifizierungsanforderungen, die von keycloak-0 schlägt fehl, was zu zeitweiligen oder vollständigen Authentifizierungsfehlern für das PFMP führt.
Keycloak-Integritätsprüfung meldet kontinuierlich einen DOWN -Status, der sich auf die hohe Verfügbarkeit auswirkt.

Ursache

Das Problem tritt aufgrund einer falschen DNS-Konfiguration auf.

Die JDBC-Verbindung, die verwendet wird von keycloak Um eine Verbindung zur Datenbank herzustellen, müssen Sie den Hostnamen oder Endpunkt der Datenbank auflösen.

Jede Fehlkonfiguration oder jeder Fehler bei der Auflösung des Hostnamens kann zu Timeouts beim Versuch, eine Verbindung herzustellen, führen. 

Lösung

1) Korrigieren Sie die DNS-Konfiguration gemäß der Betriebssystemdokumentation.

a) Wenn RedHat oder CentOS v7,x oder v8,x,

i) Bearbeiten /etc/resolv.conf So aktualisieren Sie den richtigen DNS-Server auf jedem MgmtVMs (MVMs)

ii) Löschen Sie die coredns Pods (rke2-coredns-rke2-coredns-xxxxxxxxxx-xxxxx), um die Änderungen auf diese Pods zu übertragen:

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) Überprüfen Sie, ob DNS-Änderungen jetzt in der coredns Pods (es gibt 2 coredns Pods, die für DNS verantwortlich sind): 

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) Bei SLES v15.x und höher wenden Sie sich an den Support, um den Artikel PowerFlex: So aktualisieren Sie DNS-Server

2) Starten Sie keycloak Pods

kubectl rollout restart statefulset keycloak -n powerflex 

 

3) Monitoring keycloak Protokolle für alle zusätzlichen Datenbankverbindungsprobleme 

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



Betroffene Versionen

 Kein Produktproblem

Produkte

PowerFlex rack, PowerFlex Appliance, PowerFlex custom node, ScaleIO, PowerFlex appliance connectivity
Artikeleigenschaften
Artikelnummer: 000261288
Artikeltyp: Solution
Zuletzt geändert: 26 Aug. 2026
Version:  3
Antworten auf Ihre Fragen erhalten Sie von anderen Dell NutzerInnen
Support Services
Prüfen Sie, ob Ihr Gerät durch Support Services abgedeckt ist.