【问题标题】:Is there a way to create interdependent pods on Kubernetes cluster?有没有办法在 Kubernetes 集群上创建相互依赖的 pod?
【发布时间】:2020-07-13 03:05:16
【问题描述】:

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

【问题讨论】:

    标签: docker kubernetes rabbitmq dependencies microservices


    【解决方案1】:

    这里最简单的做法是,如果服务无法到达 RabbitMQ 或其他依赖项,则让服务崩溃。

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

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

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

    【讨论】:

    • 您能否详细说明“如果无法到达 RabbitMQ,您的服务会崩溃”我正在寻找一种方法来实现这一点。
    • 例如,在许多语言中,如果您无法连接到代理,或者连接断开,您会遇到某种异常;只是不要捕获该异常并让它终止程序。
    • 如果可能的话,寻找一种 kubernetes 方式。
    猜你喜欢
    • 1970-01-01
    • 2019-10-19
    • 2020-03-26
    • 2019-02-03
    • 2023-03-30
    • 2020-12-03
    • 1970-01-01
    • 2020-03-23
    • 2018-09-19
    相关资源
    最近更新 更多