探针-command方式探测
存活探针liveness probe
检测到Pod问题,通过重启解决
探测方式:
- command
创建Pod
vim exec-liveness.yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: exec-liveness
name: exec-liveness
namespace: openeuler
spec:
containers:
- image: nginx
imagePullPolicy: IfNotPresent
name: exec-liveness
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -f /tmp/healthy; sleep 600
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5
periodSeconds: 5
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
在配置文件中,periodSeconds
字段指定kubelet每隔5秒执行一次存活探测。initialDelaySeconds
字段告诉kubelet在执行第一次探测之前应该等待5秒钟。为了执行探测,kubelet在目标容器中执行命令cat /tmp/healthy。如果命令成功,它返回0,kubelet认为容器是活动的和健康的。如果命令返回一个非零值,kubelet会终止容器并重新启动它。
kubectl apply -f exec-liveness.yaml
30秒内,显示Pods events
kubectl describe pods -n openeuler exec-liveness | grep Events -A8
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 29s default-scheduler Successfully assigned openeuler/exec-liveness to vms129.openeuler.cc
Normal Pulled <invalid> kubelet Container image "nginx" already present on machine
Normal Created <invalid> kubelet Created container exec-liveness
Normal Started <invalid> kubelet Started container exec-liveness
下面显示探测器已经失败cat /tmp/healthy不存在
kubectl describe pods -n openeuler exec-liveness | grep Events -A8
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 38s default-scheduler Successfully assigned openeuler/exec-liveness to vms129.openeuler.cc
Normal Pulled <invalid> kubelet Container image "nginx" already present on machine
Normal Created <invalid> kubelet Created container exec-liveness
Normal Started <invalid> kubelet Started container exec-liveness
Warning Unhealthy <invalid> kubelet Liveness probe failed: cat: /tmp/healthy: No such file or directory
根据事件中显示:Liveness: exec [cat /tmp/healthy] delay=5s timeout=1s period=5s #success=1 #failure=3
Pod已经重启
kubectl get pods -n openeuler
NAME READY STATUS RESTARTS AGE
exec-liveness 1/1 Running 1 (<invalid> ago) 83s