【问题标题】:Pod failure and recovery eventsPod 故障和恢复事件
【发布时间】:2019-07-19 12:00:35
【问题描述】:

我们在一个 pod 上监听多个邮箱,但是如果这个 pod 由于某种原因出现故障,则需要另一个正在运行的 pod 来监听这些邮箱。为了继续接收电子邮件。

我想知道是否有可能找到一个 pod 是否像事件一样发生故障并触发脚本在旅途中执行上述操作?

【问题讨论】:

    标签: kubernetes openshift-3


    【解决方案1】:

    方法一:

    kubernetes 生命周期处理程序钩子

    apiVersion: v1
    kind: Pod
    metadata:
      name: lifecycle-demo
    spec:
      containers:
      - name: lifecycle-demo-container
        image: nginx
        lifecycle:
          postStart:
            exec:
              command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
          preStop:
            exec:
              command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]
    

    https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/

    方法二:

    编写一个脚本,每隔 x 秒监控一次的健康状况,当连续 3 次健康检查失败时,kubernetes 会删除 pod。因此,在您的脚本中,如果连续 3 次休息呼叫因健康而失败,则该吊舱将被删除。你可以触发你的事件。

    方法3:

    维护 2 个副本 => 问题可能是两个 pod 处理相同的邮件。如果你使用 kafka,你可以避免这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 2010-09-12
      • 2015-01-29
      相关资源
      最近更新 更多