我应该为 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/
我正在尝试创建一个 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/