kubernetes - k8s、RabbitMQ 和对等发现
问题描述
我们正在尝试使用helm/charts/stable/rabbit项目中的 Helm 运行 RabbitMQ 图表的实例。我让它运行完美,但后来我不得不重新启动 k8s 进行一些维护。现在我们完全无法以任何方式启动 RabbitMQ 图表。我什至没有尝试使用任何变量运行图表,即只是默认值。
这就是我正在做的一切:
helm install stable/rabbitmq
我已经确认我可以简单地在我使用 Docker for Desktop 运行的本地 k8s 上运行默认权限。当我们在共享的 k8s 上以与在桌面上完全相同的方式运行兔子图表时以及我们在重新启动之前所做的事情时,会引发以下错误:
Failed to get nodes from k8s - 503
我还在 Helm 图表存储库上发布了一个问题。单击此处查看 Github 上的问题。
我们怀疑 DNS,但还无法确认任何事情。非常令人沮丧的是,在重新启动后,我们安装的所有其他图表都完美地重新启动,除了 Rabbit,它现在根本无法启动。
任何人都知道我可以做些什么来让兔子对等发现工作?重启k8s后有人看到过这样的问题吗?
解决方案
所以我真的让兔子跑了。原来我的问题是 k8s 对等发现无法通过默认端口 443 连接,我不得不使用外部端口 6443,因为kubernetes.default.svc.cluster.local
解析到公共端口并且找不到内部端口,所以是的,我们的配置也搞砸了。
当我用 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
,rabbit 就会立即启动。
推荐阅读
- c# - 运行“update-database”命令时出现错误:数据库中已经有一个名为“...”的对象
- azure-devops - 开发 Azure DevOps 扩展时无法使用 resultSelector
- python - 在 Openpyxl 中,如何用工作表中的 Cell 对象替换单元格?
- javascript - 用未知高度之间的 css 转换替换容器内容
- appium - iOS Appium 1.9 - 使用 iOS 类链单击元素的父级
- c - 如何从输入中读取两个行号到 2 个数组,C 语言?在不知道数量的情况下?在 C 中
- javascript - TextInput 在文本后面放置一个自动“突出显示”
- networkx - 获取networkx有向图控制流图遍历
- amazon-web-services - 我的 CloudWatch 事件规则不会触发我的 CodePipeline 管道
- javascript - 如何跟踪 React 钩子?