PowerFlex Management Platform: keycloak-0 loggar HTTP-avsökning misslyckades med statuskod: 503

Summary: Den här artikeln beskriver ett problem där keycloak-0 podden rapporterar ett hälsokontrollfel på grund av problem med databasanslutningen som orsakas av en felaktig DNS-konfiguration. Problemet påverkar autentiseringstjänster som hanteras av 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

Scenario

En av de två Keycloak pods (här keycloak-0) har anslutningsproblem med databasen, medan keycloak-1 förblir funktionell.

 

Event Loggar visar upprepade fel vid beredskapssonder.

# 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

Informationen keycloak Poddloggar indikerar att det inte går att hämta JDBC-anslutningar på grund av en tidsgräns för förvärvet:

# 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åverkan

Autentiseringsbegäranden som hanteras av keycloak-0 misslyckas, vilket orsakar tillfälliga eller fullständiga autentiseringsfel för PowerFlex-hanteringsplattformen.
keycloak Hälsokontrollen rapporterar kontinuerligt en DOWN status, vilket påverkar hög tillgänglighet.

 

Cause

Problemet uppstår på grund av felaktig DNS-konfiguration.

JDBC-anslutningen som används av keycloak För att ansluta till databasen måste databasens värdnamn eller slutpunkt matchas.

Eventuella felkonfigurationer eller fel i värdnamnsmatchningen kan orsaka timeout vid försök att upprätta en anslutning. 

Resolution

1) Åtgärda DNS-konfigurationen enligt operativsystemets dokumentation

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

i) Redigera /etc/resolv.conf för att uppdatera rätt DNS-server på varje MgmtVM (MVM)

ii) Ta bort coredns baljor (rke2-coredns-rke2-coredns-xxxxxxxxxx-xxxxx) för att sprida ändringarna i dessa poddar:

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) Kontrollera att DNS-ändringar nu återspeglas i coredns baljor (det finns 2 coredns poddar som ansvarar för 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) Om du använder SLES v15.xeller senare ska du kontakta supporten för att följa den interna artikel https://www.dell.com/support/kbdoc/en-us/000227354

2) Starta om keycloak Skida

kubectl rollout restart statefulset keycloak -n powerflex 

3) Övervaka keycloak Loggar för eventuella ytterligare problem med databasanslutningen 

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.