【问题标题】:Destroy unready pod when readinessProbe fails当 readinessProbe 失败时销毁未就绪的 pod
【发布时间】:2018-10-12 22:29:25
【问题描述】:

我正在尝试部署一个包含运行状况检查端点的应用。如果失败,应该销毁 pod,但 K8s 会保持 pod 处于 Running 状态。

配置:

     readinessProbe:
        httpGet:
          path: /healthcheck
          port: 3001
        initialDelaySeconds: 5
        periodSeconds: 5
        successThreshold: 1

吊舱:

docs-app-768b47bc69-lrlcf      0/1       Running   0          1m

那么,有没有办法在就绪探测失败时销毁 pod?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    这不是探针的用途。 LivenessProbe,在失败的情况下,重试配置的次数后会“重启”pod。相反,ReadinessProbe 可用于指示 pod 在故障期间不应提供流量。探针并不意味着运行或中止 pod,如果您需要编写一个插件来监控 pod 状态并在发生故障时删除副本或部署。

    【讨论】:

      【解决方案2】:

      将其与 Liveness 配对以使其更有效并指定资源限制。

          resources:
            limits:
              cpu: 300m
              memory: 200Mi
            requests:
              cpu: 300m
              memory: 200Mi  
          readinessProbe:
            httpGet:
              path: /api/health
              port: 80
            initialDelaySeconds: 15
            periodSeconds: 20
            successThreshold: 1
            failureThreshold: 3
          livenessProbe:
            httpGet:
              path: /api/health
              port: 80
            initialDelaySeconds: 25
            periodSeconds: 25
            successThreshold: 1
            failureThreshold: 3    
      

      【讨论】:

        【解决方案3】:

        Readiness 探测用于服务准备就绪(如果它通过了,那么您就在负载均衡器中,如果不是,那么您就没有)它对于切断到过载 pod 的流量并让它冲洗它的后备保证很有用。

        Liveness probes 用于杀死不健康且没有恢复希望的 pod。

        文档很清楚:https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-08-29
          • 1970-01-01
          • 1970-01-01
          • 2020-03-17
          • 1970-01-01
          • 2019-12-05
          • 2021-07-10
          • 2019-07-01
          相关资源
          最近更新 更多