Operador Kubernetes RabbitMQ: O cluster está tendo problemas de inicialização (readinessProbes estão falhando), como solucionar problemas adicionais?

Operador Kubernetes RabbitMQ: O cluster está tendo problemas de inicialização (readinessProbes estão falhando), como solucionar problemas adicionais?

Meu cluster RabbitMQ não está mudando para o estado pronto (as sondagens de prontidão estão falhando), pois está apresentando problemas na inicialização.

O cluster foi implantado usando o operador oficial RabbitMQ. Infelizmente, os logs não contêm nenhuma informação valiosa.

O recurso RabbitmqCluster é mais ou menos o exemplo padrão do hello world:

cat <<EOF | kubectl apply -f -
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
  name: why-not-ready
spec:
  persistence:
    storageClassName: nfs-client
---
EOF

Saída de registro:

rabbitmq 09:06:44.95
rabbitmq 09:06:44.96 Welcome to the Bitnami rabbitmq container
rabbitmq 09:06:44.96 Subscribe to project updates by watching https://github.com/bitnami/containers
rabbitmq 09:06:44.96 Submit issues and feature requests at https://github.com/bitnami/containers/issues
rabbitmq 09:06:44.96
rabbitmq 09:06:44.96 INFO  ==> ** Starting RabbitMQ setup **
rabbitmq 09:06:44.98 INFO  ==> Validating settings in RABBITMQ_* env vars..
rabbitmq 09:06:44.99 INFO  ==> Initializing RabbitMQ...
rabbitmq 09:06:45.03 INFO  ==> Starting RabbitMQ in background...
rabbitmq 09:09:03.93 ERROR ==> Couldn't start RabbitMQ in background.

Tentei ativar o registro adicional, infelizmente não havia mais saída visível:

cat <<EOF | kubectl apply -n rabbitmq -f -
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
  name: why-not-ready
spec:
  persistence:
    storageClassName: nfs-client
  rabbitmq:
     additionalConfig: |
      log.default.level = debug
      log.file = false
      log.console = true
      log.console.stdio = stdout   
      log.console.level = debug
---
EOF

O setup-container parece funcionar bem > todos os arquivos são copiados corretamente para os locais desejados com um conteúdo válido:

> cat /var/lib/rabbitmq/.erlang.cookie
uxdvZFvkpHFMdAgXM5azu0LOCE283kzY

> cat /operator/enabled_plugins
[rabbitmq_peer_discovery_k8s,rabbitmq_prometheus,rabbitmq_management].

> cat /var/lib/rabbitmq/.rabbitmqadmin.conf
[default]
username = default_user_l4yC9XizAcUHQEIe3Ep
password = zjvyy5XYCss-kFxu2dCnH2vDrd3AUsbu

Alguns insights adicionais da depuração:

  • /var/lib/rabbitmq/mnesia/ pode ser gravado de dentro do contêiner e também atualizado no volume persistente.
  • Em seguida, verifiquei como o RabbitMQ está iniciando o aplicativo. Existe um script de configuração /opt/bitnami/scripts/rabbitmq/setup.sh, que é chamado na inicialização. Dentro de RabbitMQ_initialize é chamado, o que causa a seguinte linha stdout INFO ==> Starting RabbitMQ in background...conforme visto nos logs. Infelizmente, ele não fornece nenhuma saída adicional quando chamo o script manualmente.

Alguém tem uma ideia do que está falhando na inicialização ou como habilitar logs de depuração adicionais? Qualquer ajuda seria apreciada!

Obrigado e BR,

Filipe

Responder1

Acho que este caso foi muito especial> ainda assim, eu gostaria de ter algum tipo de registro para RabbitMQ_initialize, pois está faltando no momento.

No meu caso, era um core-dns inacessível (devido à configuração de roteamento K8s inválida), que parece ser necessário ao iniciar o RabbitMQ.

Também consegui reproduzir o problema removendo privilégios de gravação no volume persistente. No entanto, isso foi só porque eu estava ficando sem ideias :).

informação relacionada