docker - 有没有办法在 Kubernetes 集群上创建相互依赖的 pod?
问题描述
有没有办法在 kubernetes 集群上创建相互依赖的 pod。就像运行某个微服务的 Pod A 宕机一样,Pod B 也会因此宕机。实际上我有一个应用程序,其中有一些依赖于rabbitmq的微服务(我作为一个pod运行并作为服务暴露给其他pod(微服务)消费)我正在寻找一个解决方案如果我的 rabbitmq pod 出现故障,我所有其他的 pod 也应该因此而停止。
解决方案
在这里最简单的做法就是让您的服务在无法到达 RabbitMQ 或其他依赖项时崩溃。
Kubernetes 会立即重新启动它,如果失败的原因是网络故障,一切都会再次正常。但是如果 RabbitMQ 真的宕机了,pod 会再次崩溃,并且经过几次重试后,pod 将处于 CrashLoopBackOff 状态;Kubernetes 将在尝试重新启动之前暂停。
此时您的 RabbitMQ 将不存在,并且您的各种 pod 将显示 CrashLoopBackOff。如果您查看诸如kubectl get pods
“等等,确实有问题”的事情,并且kubectl logs
在单个 pod 上可能会有一个非常清晰的回溯说“无法连接到 RabbitMQ”。
一旦 RabbitMQ 恢复,自动重启将(最终)发生,整个系统将自行重新启动。
推荐阅读
- java - Dropwizard - 部署时,由于 yml 文件格式错误,应用程序无法运行
- netsuite - 总计为 0 时显示空值
- css - CSS 缩放不起作用 - iPad OS (v13 - 最新) Safari
- html - 相对于另一个图像水平对齐图像
- jsf - 为什么 id 保持为零?
- string - 在列中查找字符模式
- python - 按键时物体不移动
- python - 将 SageMaker XGBoost 模型转换为 ONNX 模型时出错
- typescript - 在 typescript 中使用 jest 模拟工厂
- javascript - 从模块导出迭代器以允许迭代星号导入