Оператор Kubernetes RabbitMQ: Возникли проблемы с запуском кластера (проверки готовности не работают). Как устранить неполадки?

Оператор Kubernetes RabbitMQ: Возникли проблемы с запуском кластера (проверки готовности не работают). Как устранить неполадки?

Мой кластер RabbitMQ не переходит в состояние готовности (проверки готовности не проходят), так как возникают проблемы при запуске.

Кластер был развернут с использованием официального оператора RabbitMQ. К сожалению, логи не содержат никакой ценной информации.

Ресурс RabbitmqCluster — это более или менее стандартный пример Hello World:

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

Вывод журнала:

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.

Попытался включить дополнительное ведение журнала, но, к сожалению, больше никаких выходных данных не было видно:

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

Контейнер установки, похоже, работает нормально > все файлы правильно скопированы в нужные места с допустимым содержимым:

> 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

Некоторые дополнительные выводы из отладки:

  • /var/lib/rabbitmq/mnesia/ доступен для записи изнутри контейнера, а также обновляется на постоянном томе.
  • Затем я проверил, как rabbitmq запускает приложение. Есть скрипт настройки /opt/bitnami/scripts/rabbitmq/setup.sh, который вызывается при запуске. Внутри вызывается rabbitmq_initialize, что приводит к следующей строке stdout, INFO ==> Starting RabbitMQ in background...как видно в журналах. К сожалению, он не предоставляет никакого дополнительного вывода, когда я вручную вызываю скрипт.

Есть ли у кого-нибудь идея, что не получается при запуске или как включить дополнительные журналы отладки? Любая помощь будет оценена по достоинству!

Спасибо и BR,

Филипп

решение1

Я думаю, что этот случай был очень особенным > тем не менее, мне бы хотелось иметь какое-то логирование для rabbitmq_initialize, так как в настоящее время оно отсутствует.

В моем случае это был недоступный core-dns (из-за неверной конфигурации маршрутизации K8s), который, по-видимому, необходим при запуске rabbitmq.

Я также смог воспроизвести проблему, удалив привилегии записи на постоянном томе. Однако это было просто потому, что у меня закончились идеи :).

Связанный контент