首页 > 解决方案 > 有没有办法在 Kubernetes 集群上创建相互依赖的 pod?

问题描述

有没有办法在 kubernetes 集群上创建相互依赖的 pod。就像运行某个微服务的 Pod A 宕机一样,Pod B 也会因此宕机。实际上我有一个应用程序,其中有一些依赖于rabbitmq的微服务(我作为一个pod运行并作为服务暴露给其他pod(微服务)消费)我正在寻找一个解决方案如果我的 rabbitmq pod 出现故障,我所有其他的 pod 也应该因此而停止。

标签: dockerkubernetesrabbitmqdependenciesmicroservices

解决方案


在这里最简单的做法就是让您的服务在无法到达 RabbitMQ 或其他依赖项时崩溃。

Kubernetes 会立即重新启动它,如果失败的原因是网络故障,一切都会再次正常。但是如果 RabbitMQ 真的宕机了,pod 会再次崩溃,并且经过几次重试后,pod 将处于 CrashLoopBackOff 状态;Kubernetes 将在尝试重新启动之前暂停。

此时您的 RabbitMQ 将不存在,并且您的各种 pod 将显示 CrashLoopBackOff。如果您查看诸如kubectl get pods“等等,确实有问题”的事情,并且kubectl logs在单个 pod 上可能会有一个非常清晰的回溯说“无法连接到 RabbitMQ”。

一旦 RabbitMQ 恢复,自动重启将(最终)发生,整个系统将自行重新启动。


推荐阅读