我是否应该创建一个用于ReadinessProbe的API以使kubernetes正常工作

时间:2019-04-18 08:09:43

标签: kubernetes readinessprobe

我正在尝试创建RollingUpdate,并尝试使用下面的代码查看pod是否出现。我应该在我的应用程序中创建像/ healthz这样的显式API路径,以便kubernetes ping通它并获得200状态,否则它的内部url为kubernetes?

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

2 个答案:

答案 0 :(得分:3)

Kubernetes将在端口80和路径/healthz上向容器发出请求,并期望2xx-3xx范围内的状态码被视为成功。 如果您的应用程序未提供该路径的映射并返回404,则kubernetes会认为运行状况检查失败。 根据框架的不同,您需要手动提供API,具体取决于应用程序。 (您可以使用curl或wget来检查另一个Pod的路径并验证结果)

答案 1 :(得分: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/

获得更多信息。