【问题标题】:How to define Pod health check port for livenessProbe/readinessProbe如何为 livenessProbe/readinessProbe 定义 Pod 健康检查端口
【发布时间】:2020-01-28 15:11:01
【问题描述】:

如何定义不同的 Pod 端口,一个用于应用程序,另一个用于运行状况检查 (readinessProbe)?

如下所示的端口规范是使 readinessProbe 检查健康检查端口 TCP/9090 的正确方法吗?我的意思是,readinessProbe 是否会到达端口 9090(当然假设它是由正在运行的容器打开的)?还是需要指定任何其他端口(nodePort、targetPort、端口等)?

kind: Deployment
spec:
  template:
    spec:
      containers:
      - name: myapp
        image: <image>
        ports:
        - name: myapp-port
          containerPort: 8080
          protocol: TCP
        - name: healthcheck-port
          containerPort: 9090
          protocol: TCP

        readinessProbe:
          httpGet:
            port: healthcheck-port
            scheme: HTTP
          initialDelaySeconds: 60
          timeoutSeconds: 5
          periodSeconds: 10
          successThreshold: 2
          failureThreshold: 2

【问题讨论】:

  • 健康检查不同端口有什么具体原因吗?我们有相同应用程序端口的健康检查端点部分。

标签: kubernetes kubernetes-pod kubernetes-health-check


【解决方案1】:

是的,您的规范 sn-p 几乎正确。您无需指定任何其他内容即可使就绪探测工作。

端口名称不能超过 15 个字符,因此名称 healthcheck-port 将不起作用。您可能希望将名称更改为更小的名称,例如 healthcheck。

【讨论】:

  • 您从哪里得知端口名称不能超过 15 个字符?
  • 哦,是的。刚做了一个测试。有记录吗?
【解决方案2】:

您可以为livenessProbe 和readinessProbe 指定任何端口和路径(假设是http),但是,当然,您需要在那里提供服务。

它不应该是一个服务端口,所以NodePort不是一个选项,因为它是kubelet负责容器的健康,它可以直接访问容器。

【讨论】:

    【解决方案3】:

    您当前的配置几乎是正确的,正如@shashank-v 所提到的,除了端口名称。

    除了名称之外,我想在这里指出的是使用与最佳实践相同的端口,即 TCP/8080,但有一个 healthz 路径,您的应用程序在该路径中使用 ok 或 running 进行响应.然后在你的 httpget 中:

    readinessProbe:
          httpGet:
            port: 8080
            path: /healthz
    

    【讨论】:

      【解决方案4】:
      readinessProbe:
        tcpSocket:
          port: 8080
        initialDelaySeconds: 5
        periodSeconds: 10
      

      很好的参考:

      https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-tcp-liveness-probe

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-16
        • 1970-01-01
        • 1970-01-01
        • 2022-01-18
        • 2019-08-20
        • 2014-10-02
        • 1970-01-01
        相关资源
        最近更新 更多