在Kubernetes v1.20上运行
我配置了一个启动探针和一个活性探针。在容器的第一次启动时,将执行启动探测,直到活性探测接管为止(如文档所示)。但是,如果活性探测失败,容器重新启动,则启动探测似乎不会再次执行。这是故意的行为吗?我在任何地方都找不到这个文件。
为了重现这个问题,我运行了以下容器定义(仅涉及相关部分):
containers:
- args:
- /bin/sh
- -c
- touch /tmp/alive; sleep 10000
image: busybox
livenessProbe:
exec:
command:
- /bin/sh
- -c
- touch /tmp/liveness; test -f /tmp/alive
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 2
successThreshold: 1
timeoutSeconds: 2
startupProbe:
exec:
command:
- touch
- /tmp/startup
failureThreshold: 3
periodSeconds: 2
successThreshold: 1
timeoutSeconds: 2因此,如果活性探针运行,它会创建/tmp/活性。如果启动探针运行,它将创建/tmp/startup。您可以通过删除/tmp/alive来模拟活性检查失败。
第一次启动时:
$ ls /tmp/
alive liveness startup在rm /tmp/alive之后,活性检查失败,容器被重新启动。然后,在新容器中:
$ ls /tmp/
alive liveness因此,启动探针似乎不再被执行。
发布于 2021-11-29 14:40:42
https://stackoverflow.com/questions/70154352
复制相似问题