我有一个在Ubuntu容器内运行的进程,如果进程被杀死,我想重新部署容器。我在容器规范
中添加了以下活性探针 livenessProbe:
exec:
command:
- ps -ef | grep my_process_name
initialDelaySeconds: 120
periodSeconds: 30
然而这不起作用。当我做kubectl describe pods <pod_id>
时,我得到以下事件。
1h 6m 20 {kubelet k8s-agent-71e8d996-0} spec.containers{my_process_name} Warning Unhealthy Liveness probe failed: rpc error: code = 13 desc = invalid header field value "oci runtime error: exec failed: container_linux.go:247: starting container process caused \"exec: \\\"ps -ef | grep my_process_name\\\": executable file not found in $PATH\"\n"
它不断重新部署容器。如果我冲进容器并做一个&ps; ps -ef&#39;它有效但但并非如此 什么是使用活性探针检查进程是否正在运行的好方法?谢谢。
答案 0 :(得分:3)
为了便于复制粘贴 OP 在问题下的评论:-)。
下面,worker.py
是需要检查的进程:
livenessProbe:
exec:
command:
- /bin/bash
- -c
- ps -ef | grep worker.py | grep -v grep
initialDelaySeconds: 10
periodSeconds: 10
答案 1 :(得分:0)
显然,路径中找不到ps
。您可以尝试使用/bin/ps
代替ps
。