kubernetes 中 liveness probes 中的 curl 和 grep 命令
curl and grep Command in liveness probes in kuberenetes
我是 Kubernetes 新手。我已经为我的 python 控制台应用程序编写了一个部署。此应用已订阅 NATS(消息队列)。
我已经在liveness prob中编写命令来检查nats服务器中的connection_id(我的应用程序连接ID)是否存在。否则,请重新启动 pod,因为在这种情况下,应用程序未正确 运行ning。
我尝试过不同的命令。例如
livenessProbe:
exec:
command:
- sh
- -c
#- curl -s nats:8222/connz?cid=$(cat /tmp/cid) | python3 -c "import sys, json; print(json.load(sys.stdin)['connections'][0]['cid'])" | echo
#- curl -s http://nats:8222/connz?cid=$(cat /tmp/cid) | grep "$(cat /tmp/cid)"
- curl -s http://nats:8222/connz?cid=$(cat /tmp/cid) | grep "cid"
initialDelaySeconds: 10
periodSeconds: 10
和另外几个 curl 命令。然后当我删除 /tmp/cid
文件时。 应该会失败吧?但事实并非如此。
如果我运行这个命令
curl -s http://nats:8222/connz?cid=$(cat /tmp/cid) | grep -c "\"cid\": $(cat /tmp/cid)"
我得到 io.k8s.api.core.v1.ExecAction.command: got "map", expected "string"
这个问题。
有什么建议吗?
curl -s http://localhost:8222/connz?cid=$(cat /tmp/cid) | grep -c "cid.* $(cat /tmp/cid),"
这终于对我有用了。
被这个问题困扰了 2 天:(
我是 Kubernetes 新手。我已经为我的 python 控制台应用程序编写了一个部署。此应用已订阅 NATS(消息队列)。
我已经在liveness prob中编写命令来检查nats服务器中的connection_id(我的应用程序连接ID)是否存在。否则,请重新启动 pod,因为在这种情况下,应用程序未正确 运行ning。
我尝试过不同的命令。例如
livenessProbe:
exec:
command:
- sh
- -c
#- curl -s nats:8222/connz?cid=$(cat /tmp/cid) | python3 -c "import sys, json; print(json.load(sys.stdin)['connections'][0]['cid'])" | echo
#- curl -s http://nats:8222/connz?cid=$(cat /tmp/cid) | grep "$(cat /tmp/cid)"
- curl -s http://nats:8222/connz?cid=$(cat /tmp/cid) | grep "cid"
initialDelaySeconds: 10
periodSeconds: 10
和另外几个 curl 命令。然后当我删除 /tmp/cid
文件时。 应该会失败吧?但事实并非如此。
如果我运行这个命令
curl -s http://nats:8222/connz?cid=$(cat /tmp/cid) | grep -c "\"cid\": $(cat /tmp/cid)"
我得到 io.k8s.api.core.v1.ExecAction.command: got "map", expected "string"
这个问题。
有什么建议吗?
curl -s http://localhost:8222/connz?cid=$(cat /tmp/cid) | grep -c "cid.* $(cat /tmp/cid),"
这终于对我有用了。
被这个问题困扰了 2 天:(