PowerFlex : Échec de l’exploration HTTP avec le code d’état : 503

概要: Cet article explique un problème dans lequel le pod keycloak-0 signale un échec du bilan de santé en raison de problèmes de connectivité de la base de données causés par une configuration DNS incorrecte. Ce problème a un impact sur les services d’authentification gérés par Keycloak ...

この記事は次に適用されます: この記事は次には適用されません: この記事は、特定の製品に関連付けられていません。 すべての製品パージョンがこの記事に記載されているわけではありません。

現象

L’un des deux pods Keycloak (ici keycloak-0) éprouve des problèmes de connectivité avec la base de données, tandis que keycloak-1 reste fonctionnel.

Les journaux d’événements affichent des échecs répétés du capteur de préparation.

# 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

 

Les journaux du pod keycloak indiquent un échec de l’acquisition des connexions JDBC en raison d’un délai d’expiration d’acquisition :

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

 

Impact

Demandes d’authentification traitées par keycloak-0 échoue, ce qui entraîne des échecs d’authentification intermittents ou complets pour le PFMP.
Le bilan de santé Keycloak signale en permanence une DOWN ce qui a un impact sur la haute disponibilité.

原因

Le problème se produit en raison d’une configuration DNS incorrecte.

La connexion JDBC utilisée par keycloak La connexion à la base de données dépend de la résolution du nom d’hôte ou du point de terminaison de la base de données.

Toute mauvaise configuration ou défaillance dans la résolution des noms d’hôte peut entraîner des délais d’expiration lors de la tentative d’établissement d’une connexion. 

解決方法

1) Corrigez la configuration DNS conformément à la documentation du système d’exploitation.

a) Si RedHat ou CentOS v7,x ou v8,x,

i) Modifier /etc/resolv.conf pour mettre à jour le serveur DNS approprié sur chaque MgmtVM (MVM)

ii) Supprimer le coredns pods (rke2-coredns-rke2-coredns-xxxxxxxxxx-xxxxx) pour propager les modifications apportées à ces pods :

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) Vérifier que les modifications DNS sont maintenant reflétées dans le fichier coredns pods (il y a 2 coredns pods responsables du 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) Si SLES v15.xet versions ultérieures, contactez le support pour suivre l’article PowerFlex 4.x Comment mettre à jour les serveurs DNS

2) Redémarrer keycloak Gousses

kubectl rollout restart statefulset keycloak -n powerflex 

 

3) Surveillez keycloak Logs pour tout problème de connectivité supplémentaire à la base de données 

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



Versions affectées

 Il ne s’agit pas d’un problème lié au produit.

製品

PowerFlex rack, PowerFlex Appliance, PowerFlex custom node, ScaleIO, PowerFlex appliance connectivity
文書のプロパティ
文書番号: 000261288
文書の種類: Solution
最終更新: 03 1月 2026
バージョン:  2
質問に対する他のDellユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。