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

Riepilogo: 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 ...

Questo articolo si applica a Questo articolo non si applica a Questo articolo non è legato a un prodotto specifico. Non tutte le versioni del prodotto sono identificate in questo articolo.

Sintomi

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.

Causa

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. 

Risoluzione

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.

Prodotti

PowerFlex rack, PowerFlex Appliance, PowerFlex custom node, ScaleIO, PowerFlex appliance connectivity
Proprietà dell'articolo
Numero articolo: 000261288
Tipo di articolo: Solution
Ultima modifica: 03 gen 2026
Versione:  2
Trova risposta alle tue domande dagli altri utenti Dell
Support Services
Verifica che il dispositivo sia coperto dai Servizi di supporto.