PowerFlex: Test HTTP selhal se stavovým kódem: 503

Samenvatting: Tento článek vysvětluje problém, kdy pod keycloak-0 hlásí selhání kontroly stavu kvůli problémům s připojením k databázi způsobeným nesprávnou konfigurací DNS. Tento problém se týká ověřovacích služeb spravovaných protokolem 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

Jeden ze dvou Keycloak podů (zde keycloak-0) dochází k problémům s připojením k databázi, zatímco keycloak-1 zůstává funkční.

V protokolech událostí se zobrazují opakovaná selhání sondy připravenosti.

# 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

 

Protokoly podu keycloak indikují selhání získání připojení JDBC z důvodu časového limitu akvizice:

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

 

Důsledky

Žádosti o ověření zpracovávané keycloak-0 selhání, což způsobí občasná nebo úplná selhání ověřování pro PFMP.
Kontrola stavu Keycloak průběžně hlásí DOWN což má vliv na vysokou dostupnost.

Oorzaak

K problému dochází kvůli nesprávné konfiguraci serveru DNS.

Připojení JDBC používané keycloak Připojení k databázi závisí na překladu názvu hostitele databáze nebo koncového bodu.

Jakákoli nesprávná konfigurace nebo selhání překladu názvů hostitelů může při pokusu o navázání připojení způsobit vypršení časového limitu. 

Oplossing

1) Opravte konfiguraci DNS podle dokumentace k operačnímu systému

a) Pokud RedHat nebo CentOS v7,x nebo v8,x,

i) Upravit /etc/resolv.conf aktualizujte správný server DNS u jednotlivých virtuálních počítačů MgmtVMs (MVM)

ii) Vymažte coredns lusky (rke2-coredns-rke2-coredns-xxxxxxxxxx-xxxxx), aby se změny rozšířily do těchto podů:

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) Ověřte, zda se změny DNS nyní projeví v coredns lusky (jsou 2 coredns pody zodpovědné za 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) Pokud SLES v15.xa vyšší, obraťte se na podporu podle článku PowerFlex 4.x Jak aktualizovat servery DNS

2) Restartujte počítač keycloak Lusky

kubectl rollout restart statefulset keycloak -n powerflex 

 

3) Monitorujte keycloak Protokoly pro případné další problémy s připojením k databázi 

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



Dotčené verze

 Nejedná se o problém produktu.

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.