Plataforma de gerenciamento do PowerFlex: registros keycloak-0 Falha no teste HTTP com statuscode: 503

Summary: Este artigo explica um problema em que o pod keycloak-0 relata uma falha de verificação de integridade devido a problemas de conectividade do banco de dados causados por uma configuração incorreta de DNS. Esse problema afeta os serviços de autenticação gerenciados pelo 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

Situação

Um dos dois pods Keycloak (aqui keycloak-0) apresenta problemas de conectividade com o banco de dados, enquanto keycloak-1 permanece funcional.

 

Event Os logs mostram falhas repetidas do teste de prontidão.

# 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

O comando keycloak registros de pod indicam uma falha ao adquirir conexões JDBC devido a um tempo de espera excedido de aquisição:

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

Impacto

Solicitações de autenticação tratadas por keycloak-0 falha, causando falhas intermitentes ou completas de autenticação para a plataforma de gerenciamento do PowerFlex.
keycloak A verificação de integridade relata continuamente um DOWN status, afetando a alta disponibilidade.

 

Cause

O problema ocorre devido à configuração incorreta do DNS.

A conexão JDBC usada por keycloak Para se conectar ao banco de dados, é necessário resolver o nome do host ou endpoint do banco de dados.

Qualquer configuração incorreta ou falha na resolução do nome de host pode causar tempos de espera excedidos ao tentar estabelecer uma conexão. 

Resolution

1) Corrija a configuração do DNS de acordo com a documentação do sistema operacional

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

i) Editar /etc/resolv.conf para atualizar o servidor DNS correto em cada MgmtVMs (MVMs)

ii) Suprimir o coredns vagens (rke2-coredns-rke2-coredns-xxxxxxxxxx-xxxxx) para propagar as alterações nessas vagens:

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) Verifique se as alterações de DNS agora são refletidas no coredns Pods (há 2 coredns pods responsáveis pelo 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) Se SLES v15.xe superior, entre em contato com o suporte para seguir o artigo interno https://www.dell.com/support/kbdoc/en-us/000227354

2) Reiniciar keycloak Vagens

kubectl rollout restart statefulset keycloak -n powerflex 

3) Monitor keycloak Logs de quaisquer problemas adicionais de conectividade do banco de dados 

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.