我们正在尝试使用 Helm 从 helm/charts/stable/rabbit 运行 RabbitMQ 图表的实例。项目。我让它运行完美,但后来我不得不重新启动 k8s 进行一些维护。现在我们完全无法以任何方式启动 RabbitMQ 图表。我什至没有尝试使用任何变量运行图表,即只是默认值。
这就是我正在做的一切:
helm install stable/rabbitmq
我已经确认我可以简单地在我使用 Docker for Desktop 运行的本地 k8s 上运行默认权限。当我们在共享的 k8s 上以与在桌面上完全相同的方式运行兔子图表时以及我们在重新启动之前所做的事情时,会引发以下错误:
Failed to get nodes from k8s - 503
我还在 Helm 图表存储库上发布了一个问题。 Click here to see the issue on Github.
我们怀疑 DNS,但还无法确认任何事情。非常令人沮丧的是,在重新启动后,我们安装的所有其他图表都完美地重新启动,除了 Rabbit,它现在根本无法启动。
任何人都知道我可以做些什么来让兔子对等发现工作?重启k8s后有人看到过这样的问题吗?
最佳答案
所以我真的让兔子跑了。原来我的问题是 k8s 对等发现无法通过默认端口 443 连接,我不得不使用外部端口 6443,因为 kubernetes.default.svc.cluster.local
解析到公共(public)端口,找不到内部,所以是的,我们的配置也搞砸了。
当我用 helm install . -f server-values.yaml
覆盖下面的变量时,我花了一段时间才意识到它没有被覆盖。 .
rabbitmq:
configuration: |-
## Clustering
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s
cluster_formation.k8s.host = kubernetes.default.svc.cluster.local
cluster_formation.k8s.port = 6443
cluster_formation.node_cleanup.interval = 10
cluster_formation.node_cleanup.only_log_warning = true
cluster_partition_handling = autoheal
# queue master locator
queue_master_locator=min-masters
# enable guest user
loopback_users.guest = false
我必须添加
cluster_formation.k8s.port = 6443
到主要values.yaml
文件而不是我自己的。一旦在 values.yaml
中专门更改了端口, ,兔子开始了。
关于kubernetes - k8s、RabbitMQ 和对等发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54311129/