Powerflex-hallintaympäristö: keycloak-0-lokit HTTP-anturi epäonnistui ja näytti tilakoodin: 503

Summary: Tässä artikkelissa kerrotaan ongelmasta, jossa keycloak-0-pod ilmoittaa kuntotarkastuksen epäonnistumisesta virheellisen DNS-määrityksen aiheuttamien tietokannan yhteysongelmien vuoksi. Tämä ongelma vaikuttaa Keycloakin hallitsemiin todennuspalveluihin ...

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

Tilanne

Toinen kahdesta Keycloak-podista (tässä keycloak-0) ilmenee yhteysongelmia tietokannan kanssa, kun taas keycloak-1 pysyy toimivana.

 

Event Lokit näyttävät toistuvia valmiusanturin vikoja.

# 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

pikanäppäimellä keycloak Pod-lokit ilmaisevat, että JDBC-yhteyksiä ei voitu hankkia hankinnan aikakatkaisun vuoksi:

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

Vaikutus

Todennuspyynnöt käsittelee keycloak-0 epäonnistui, mikä aiheuttaa ajoittaisia tai täydellisiä todennusvirheitä PowerFlex-hallintaympäristössä.
keycloak Kuntotarkastus raportoi jatkuvasti DOWN tila, joka vaikuttaa korkeaan käytettävyyteen.

 

Cause

Ongelma johtuu virheellisistä DNS-määrityksistä.

JDBC-yhteys, jota käyttää keycloak Yhteyden muodostaminen tietokantaan edellyttää tietokannan isäntänimen tai päätepisteen selvittämistä.

Mikä tahansa virheellinen määritys tai epäonnistuminen isäntänimen selvityksessä voi aiheuttaa aikakatkaisuja yhteyden muodostamisen yhteydessä. 

Resolution

1) Korjaa DNS-määritykset käyttöjärjestelmän ohjeiden mukaisesti

a) Jos RedHat tai CentOS v7,x tai v8,x,

i) Muokkaa /etc/resolv.conf päivittääksesi oikean DNS-palvelimen kussakin MgmtVM:ssä (MVM)

ii) Poistetaan coredns palot (rke2-coredns-rke2-coredns-xxxxxxxxxx-xxxxx) kyseisten palojen muutosten levittämiseksi:

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) Varmista, että DNS-muutokset näkyvät nyt coredns palot (on 2 coredns DNS: stä vastaavat podit): 

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) Jos SLES v15.xtai uudempi, pyydä tukea sisäisen artikkelin https://www.dell.com/support/kbdoc/en-us/000227354 noudattamiseksi

2) Käynnistä uudelleen keycloak Palot

kubectl rollout restart statefulset keycloak -n powerflex 

3) Näyttö keycloak Lokit mahdollisista tietokannan yhteysongelmista 

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.