1

我正在尝试创建一个 RollingUpdate 并尝试使用下面的代码来查看 pod 是否出现。我应该在我的应用程序中创建像 /healthz 这样的显式 API 路径,以便 kubernetes 对其进行 ping 操作并返回 200 状态,或者它的 kubernetes 的内部 url?

specs:
   containers:
   - name: liveness
     readinessProbe:
    httpGet:
      path: /healthz
      port: 80
4

2 回答 2

3

Kubernetes 将在端口 80 和路径上向容器发出请求,/healthz并期望 2xx-3xx 范围内的状态码被认为是成功的。如果您的应用程序未提供路径映射并返回 404,则 kubernetes 假定健康检查失败。根据您的应用程序,如果不是由您的框架完成,您需要手动提供 API。(您可以使用 curl 或 wget 从另一个 pod 检查路径并验证结果)

于 2019-04-18T08:15:51.897 回答
3

As@Thomas 回答了 Http 探测,如果应用程序没有提供端点来验证成功响应。你可以使用TCP 探针

kubelet 尝试在容器的端口上建立 TCP 连接。如果能够建立连接,则认为容器是健康的;如果不能,则被认为是不健康的

例如,在你的情况下,它会是这样的

    ports:
    - containerPort: 80
    readinessProbe:
      tcpSocket:
        port: 80
      initialDelaySeconds: 5
      periodSeconds: 10
    livenessProbe:
      tcpSocket:
        port: 80
      initialDelaySeconds: 15
      periodSeconds: 20

您可以在此处获取更多信息configure-liveness-readiness-probes/

于 2019-04-18T08:22:24.290 回答