Powerflex 관리 플랫폼: keycloak-0 logs HTTP probe failed with statuscode: 503

Summary: 이 문서에서는 keycloak-0 Pod가 잘못된 DNS 구성으로 인한 데이터베이스 연결 문제로 인해 상태 점검 실패를 보고하는 문제에 대해 설명합니다. 이 문제는 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

시나리오

두 개의 Keycloak 포드 중 하나(여기서는 keycloak-0)은 데이터베이스와의 연결 문제가 발생하는 반면 keycloak-1 기능을 유지합니다.

 

Event 로그에 준비도 프로브 실패가 반복적으로 표시됩니다.

# 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

keycloak Pod 로그는 획득 시간 초과로 인해 JDBC 연결을 획득하지 못했음을 나타냅니다.

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

영향

인증 요청 처리 주체 keycloak-0 실패하여 PowerFlex 관리 플랫폼에 대한 인증 실패를 간헐적으로 또는 완전히 일으킵니다.
keycloak 상태 점검은 계속해서 DOWN 상태, 고가용성에 영향을 줍니다.

 

Cause

이 문제는 잘못된 DNS 구성으로 인해 발생합니다.

다음에서 사용하는 JDBC 연결 keycloak 데이터베이스에 연결하려면 데이터베이스 호스트 이름 또는 엔드포인트를 확인해야 합니다.

호스트 이름 확인에서 구성 오류 또는 장애가 발생하면 연결을 설정하려고 할 때 시간 초과가 발생할 수 있습니다. 

Resolution

1) 운영 체제 설명서에 따라 DNS 구성 수정

a) RedHat 또는 CentOS v7,x 또는 v8,x인 경우,

i) 편집 /etc/resolv.conf 각 MVM(MgmtVM)에서 올바른 DNS 서버를 업데이트합니다.

ii) 삭제 coredns 파드(rke2-coredns-rke2-coredns-xxxxxxxxxx-xxxxx)을 클릭하여 변경 사항을 해당 포드에 전파합니다.

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) 이제 DNS 변경 사항이 coredns 포드(2개의 포드가 있음) coredns DNS를 담당하는 Pod): 

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) SLES v15.x이상인 경우 지원 부서에 문의하여 내부 문서 https://www.dell.com/support/kbdoc/en-us/000227354

2) 재시작 keycloak 포드

kubectl rollout restart statefulset keycloak -n powerflex 

3) 모니터 keycloak 추가 데이터베이스 연결 문제에 대한 로그 

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.