.%20%EC%B6%94%EA%B0%80%20%EB%AC%B8%EC%A0%9C%20%ED%95%B4%EA%B2%B0%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%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가 호출되어
INFO ==> Starting RabbitMQ in background...
로그에 표시된 대로 다음 stdout 행이 발생합니다 . 불행히도 스크립트를 수동으로 호출하면 추가 출력이 제공되지 않습니다.
시작 시 무엇이 실패하는지 또는 추가 디버그 로그를 활성화하는 방법에 대한 아이디어가 있는 사람이 있습니까? 어떤 도움이라도 주시면 감사하겠습니다!
감사합니다. BR,
필립
답변1
나는 이 사례가 매우 특별하다고 생각합니다. > 여전히 현재 누락되어 있는 Rabbitmq_initialize에 대한 일종의 로깅이 있었으면 좋았을 것입니다.
제 경우에는 (잘못된 K8s 라우팅 구성으로 인해) 연결할 수 없는 core-dns였는데, 이는 Rabbitmq를 시작할 때 필요한 것 같습니다.
또한 영구 볼륨에 대한 쓰기 권한을 제거하여 문제를 재현할 수 있었습니다. 그러나 이것은 아이디어가 부족했기 때문이었습니다 :).