我正在尝试创建RollingUpdate,并尝试使用下面的代码查看pod是否出现。我应该在我的应用程序中创建像/ healthz这样的显式API路径,以便kubernetes ping通它并获得200状态,否则它的内部url为kubernetes?
specs:
containers:
- name: liveness
readinessProbe:
httpGet:
path: /healthz
port: 80
答案 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
获得更多信息。