【问题标题】:Kubernetes liveness probe httpGet schema not working correctlyKubernetes liveness 探针 httpGet 模式无法正常工作
【发布时间】:2021-08-15 14:59:55
【问题描述】:

我正在 kubernetes 上部署一些 Web 应用程序,我想为此应用程序设置活跃度探测。 当我使用 liveness probe 配置我的部署时,kubelet 会启动健康检查。我使用方案“HTTP”参数定义了 httpGet,但 kubelet 随机使用 https 模式。

这是我的活性探针配置:

livenessProbe:
  failureThreshold: 4
  httpGet:
    path: /
    port: 80
    scheme: HTTP
  initialDelaySeconds: 40
  periodSeconds: 5
  successThreshold: 1
  timeoutSeconds: 2

这是 kubelet 的结果:

kubectl 描述 pod greenlight-7877dc58b7-6s78l

输出:

Warning Unhealthy 31s (x4 over 46s) kubelet Liveness 探测失败:获取“https://10.244.4.182/”:拨打 tcp 10.244.4.182:443: 连接:连接被拒绝

Kubernetes 版本:v1.19.9

感谢您的帮助!

【问题讨论】:

    标签: kubernetes deployment kubernetes-health-check kubernetes-deployment livenessprobe


    【解决方案1】:

    由于您明确声明 livenessProbe 使用 HTTP,因此可能是您的应用程序将流量重定向到 HTTPS。确保您的应用程序在基本路径 / 上返回 200 OK,而不是重定向(任何 3xx 代码)。

    你可以解决这个问题,或者使用TCP probe

    apiVersion: v1
    kind: Pod
    metadata:
      name: goproxy
      labels:
        app: goproxy
    spec:
      containers:
      - name: goproxy
        image: k8s.gcr.io/goproxy:0.1
        ports:
        - containerPort: 8080
        readinessProbe:
          tcpSocket:
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 10
        livenessProbe:
          tcpSocket:
            port: 8080
          initialDelaySeconds: 15
          periodSeconds: 20
    

    【讨论】:

    • 你好,帕维尔。在你回答之后,我检查了我的部署。然后我注意到应用程序重定向请求到 https。我用你的反馈解决了我的问题。谢谢。
    猜你喜欢
    • 2023-01-13
    • 2020-12-13
    • 2018-02-11
    • 2019-05-18
    • 2020-12-26
    • 2012-11-03
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    相关资源
    最近更新 更多