Platforma zarządzania Powerflex: keycloak-0 rejestruje niepowodzenie sondy HTTP z kodem statuscode: 503

Résumé: 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 ...

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Symptômes

Scenariusz

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.

 

Event Dzienniki 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

Zadanie keycloak Dzienniki zasobników wskazują niepowodzenie pozyskiwania połączeń JDBC z powodu przekroczenia limitu czasu pozyskiwania:

# 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 pełne błędy uwierzytelniania platformy zarządzania PowerFlex.
keycloak Kontrola poprawności działania stale raportuje DOWN wpływające na wysoką dostępność.

 

Cause

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. 

Résolution

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) W przypadku SLES w wersji 15.xlub nowszej należy zaangażować pomoc techniczną w celu przestrzegania wewnętrznego artykułu https://www.dell.com/support/kbdoc/en-us/000227354

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]



Produits

PowerFlex rack, PowerFlex Appliance, PowerFlex custom node, ScaleIO, PowerFlex appliance connectivity
Propriétés de l’article
Numéro d’article: 000261288
Type d’article: Solution
Dernière modification: 03 janv. 2026
Version:  2
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.