Powerflex Management Platform: keycloak-0-logfiler HTTP-sonden mislykkedes med statuskode: 503

Summary: Denne artikel forklarer et problem, hvor keycloak-0-pod'en rapporterer en tilstandskontrolfejl på grund af problemer med databaseforbindelsen forårsaget af en forkert DNS-konfiguration. Dette problem påvirker godkendelsestjenester, der administreres af keycloak ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Scenarie

En af de to Keycloak pods (her keycloak-0) oplever forbindelsesproblemer med databasen, mens keycloak-1 forbliver funktionel.

 

Event Logfiler viser gentagne parathedssondefejl.

# 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

Ikonet keycloak pod-logfiler angiver, at det ikke lykkedes at hente JDBC-forbindelser på grund af en anskaffelsestimeout:

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

Påvirkning

Autentificeringsanmodninger, der håndteres af keycloak-0 fejl, hvilket forårsager periodiske eller komplette godkendelsesfejl for PowerFlex-administrationsplatformen.
keycloak Sundhedstjek rapporterer løbende en DOWN status, der påvirker høj tilgængelighed.

 

Cause

Problemet opstår på grund af forkert DNS-konfiguration.

JDBC-forbindelsen, der bruges af keycloak At oprette forbindelse til databasen er afhængig af fortolkning af databasens værtsnavn eller slutpunkt.

Enhver fejlkonfiguration eller fejl i værtsnavnsopløsningen kan forårsage timeouts, når du forsøger at oprette en forbindelse. 

Resolution

1) Ret DNS-konfigurationen i henhold til operativsystemdokumentationen

a) Hvis RedHat eller CentOS v7,x eller v8,x,

i) Rediger /etc/resolv.conf for at opdatere den korrekte DNS-server på hver MgmtVMs (MVM'er)

ii) Udgår coredns bælg (rke2-coredns-rke2-coredns-xxxxxxxxxx-xxxxx) for at overføre ændringerne af disse bælg:

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) Bekræft, at DNS-ændringer nu afspejles i coredns bælg (der er 2 coredns pods, der er ansvarlige for 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) Hvis SLES v15.xeller nyere, skal du kontakte support for at følge den interne artikel https://www.dell.com/support/kbdoc/en-us/000227354

2) Genstart keycloak Bælg

kubectl rollout restart statefulset keycloak -n powerflex 

3) Skærm keycloak logfiler for eventuelle yderligere problemer med databaseforbindelsen 

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



Products

PowerFlex rack, PowerFlex Appliance, PowerFlex custom node, ScaleIO, PowerFlex appliance connectivity
Article Properties
Article Number: 000261288
Article Type: Solution
Last Modified: 19 Dec 2024
Version:  1
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.