PowerFlex: Sonda HTTP nie powiodła się z kodem statuscode: 503

Samenvatting: W tym artykule wyjaśniono problem, w którym zasobnik keycloak-0 zgłasza błąd kontroli poprawności działania z powodu problemów z łącznością z bazą danych spowodowanych nieprawidłową konfiguracją DNS. Ten problem wpływa na usługi uwierzytelniania zarządzane przez 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

Jedna z dwóch kapsuł Keycloak (tutaj keycloak-0) doświadcza problemów z łącznością z bazą danych, podczas gdy keycloak-1 nadal funkcjonuje.

Dzienniki zdarzeń pokazują powtarzające się awarie sondy gotowości.

# 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

 

Dzienniki zasobników Keycloak wskazują niepowodzenie uzyskania połączeń JDBC z powodu przekroczenia limitu czasu akwizycji:

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

 

Wpływ

Żądania uwierzytelniania obsługiwane przez keycloak-0 powodując sporadyczne lub kompletne błędy uwierzytelniania dla programu PFMP.
Kontrola poprawności działania KeyCloak stale raportuje DOWN wpływające na wysoką dostępność.

Oorzaak

Problem występuje z powodu nieprawidłowej konfiguracji DNS.

Połączenie JDBC używane przez keycloak Nawiązanie połączenia z bazą danych polega na rozpoznaniu nazwy hosta bazy danych lub punktu końcowego.

Błędna konfiguracja lub błąd w rozpoznawaniu nazw hostów może spowodować przekroczenie limitu czasu podczas próby nawiązania połączenia. 

Oplossing

1) Napraw konfigurację DNS zgodnie z dokumentacją systemu operacyjnego

a) Jeśli RedHat lub CentOS v7,x lub v8,x,

i) Edycja /etc/resolv.conf , aby zaktualizować prawidłowy serwer DNS na każdej maszynie wirtualnej zarządzania (MVM)

ii) Skreśla się coredns strąki (rke2-coredns-rke2-coredns-xxxxxxxxxx-xxxxx), aby propagować zmiany w tych strąkach:

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) Sprawdź, czy zmiany DNS są teraz odzwierciedlone w coredns strąki (są 2 coredns strąki odpowiedzialne 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) Jeśli SLES jest w wersji 15.xlub nowszej, skontaktuj się z pomocą techniczną, aby postępować zgodnie z artykułem PowerFlex 4.x Jak zaktualizować serwery DNS

2) Uruchom ponownie keycloak Strąków

kubectl rollout restart statefulset keycloak -n powerflex 

 

3) Monitoruj keycloak Dzienniki dotyczące wszelkich dodatkowych problemów z łącznością z bazą danych 

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



Wersje, których dotyczy problem

 Nie jest to problem dotyczący 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.