.%20%D0%9A%D0%B0%D0%BA%20%D1%83%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C%20%D0%BD%D0%B5%D0%BF%D0%BE%D0%BB%D0%B0%D0%B4%D0%BA%D0%B8%3F.png)
Мой кластер 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.
Я также смог воспроизвести проблему, удалив привилегии записи на постоянном томе. Однако это было просто потому, что у меня закончились идеи :).