POD 的就绪状态条件会再次检查吗?
是的,取决于您设置的阈值,条件将再次被检查。
在每个 periodSeconds
配置中,将检查 POD 的就绪状态。
在初始延迟后它还会再次检查吗?
它只会在初始延迟后进行检查。初始延迟是在 POD 初始化或启动时出现的。就绪状态检查将等待配置的时间,之后将开始按照每个时间间隔(例如每 5
秒或 10
秒)检查 POD 的就绪状态,具体取决于 periodSeconds
的配置。
如果 POD 自愈后就会将其 IP 地址添加到终结点末尾吗?
是的,如果自动恢复,意味着将 successThreshold
设置为 1
,如果 POD 返回 200,则会将其标记为已恢复并且正在运行的 POD 将再次接收流量。
如果 POD 恢复了,它是否会再次接收流量?
是的
例如:
readinessProbe:
httpGet:
path: /k8/readiness
port: 9595
initialDelaySeconds: 25
periodSeconds: 8
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 30
livenessProbe:
httpGet:
path: /k8/liveness
port: 9595
initialDelaySeconds: 30
periodSeconds: 8
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 30
就像配置中所提到的那样,就绪探针和存活探针会检查HTTP端点的状态。
initialDelaySeconds:仅在POD初始化或由于重启或其他任何原因重新启动时才会起作用。所以当POD启动时,就绪性不会检查服务状态,直到经过30秒。
经过30 seconds
后,它将尝试检查端点的状态。如果成功,POD将处于准备好处理流量的状态;否则,它将在periodSeconds
时间后再次尝试,因此如果我们得到200 response
,则在8秒后再次尝试,POD将为Ready,否则将在8秒后再次尝试。
timeoutSeconds:单个跳数或请求将等待一定的时间来从服务获取响应,否则将标记为失败的检查。
failureThreshold:按照配置就绪性或存活性的最大失败检查次数之后,此POD将被启动或更改为无法使用状态。
successThreshold:成功阈值意味着如果单个请求从服务获得成功响应,则POD状态将更改为Ready。
如果连续30个failureThreshold
发生,那么只有POD会被标记为Not ready,如果在singlesuccessThreshold
之间发生,则POD将被标记为Ready,liveness也是如此。
注意:上面的示例仅供参考,不能在实际的生产场景中使用。
阅读更多信息:https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/