我应该为 readinessprobe 创建一个 API 来工作 kubernetes

Should i create a API for readinessprobe to work kubernetes

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

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

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

由于@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/