Kubernetes:如何使用具有管道的 Exec 编写 livenessprobe 和 readinessprobe
Kubernetes: How to write livenessprobe and readinessprobe with Exec having pipe
我正在使用 Exec 探测器添加活动探测器和就绪探测器。
我的配置如下所示:
readinessProbe:
exec:
command: "/usr/bin/jps -l | grep QueueProcess"
periodSeconds: 10
failureThreshold: 2
successThreshold: 2
当上述方法无效时。我修改了这个,也试过了:
readinessProbe:
exec:
command: ["/usr/bin/jps", "-l", "|", "grep","QueueProcess"]
periodSeconds: 10
failureThreshold: 2
successThreshold: 2
在 运行 kubectl describe pod
上,得到以下输出:
Normal Created 37s kubelet Created container app1
Normal Started 37s kubelet Started container app1
Warning Unhealthy 6s (x3 over 26s) kubelet Readiness probe failed: invalid argument count
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:<port>]
我尝试了另一个应用程序,我在运行 grpcurl
调用健康检查:
readinessProbe:
exec:
command: ["grpcurl", "-plaintext", "-protoset", "/app/HealthCheck.protoset", "localhost:8123", "service.HealthCheckService/GetHealthCheck","|", "jq", ".", "|","grep","200"]
periodSeconds: 10
failureThreshold: 2
successThreshold: 2
在 运行 kubectl describe pod
上,我得到了:
Normal Created 23s kubelet Created container app2
Normal Started 23s kubelet Started container app2
Warning Unhealthy 3s (x2 over 13s) kubelet Readiness probe failed: Too many arguments.
Try 'grpcurl -help' for more details.
这两个都失败了。
问题是,我如何写一个 Exec probe
,其中有一个管道(或多个管道)?
我正在使用 EKS v1.18。
(以上配置属于不同的应用。)
您需要实际使用 shell,因为那是 shell 功能。 sh -c "foo | bar"
或其他。还要记住,所有相关命令都需要在目标图像中可用。
我正在使用 Exec 探测器添加活动探测器和就绪探测器。
我的配置如下所示:
readinessProbe:
exec:
command: "/usr/bin/jps -l | grep QueueProcess"
periodSeconds: 10
failureThreshold: 2
successThreshold: 2
当上述方法无效时。我修改了这个,也试过了:
readinessProbe:
exec:
command: ["/usr/bin/jps", "-l", "|", "grep","QueueProcess"]
periodSeconds: 10
failureThreshold: 2
successThreshold: 2
在 运行 kubectl describe pod
上,得到以下输出:
Normal Created 37s kubelet Created container app1
Normal Started 37s kubelet Started container app1
Warning Unhealthy 6s (x3 over 26s) kubelet Readiness probe failed: invalid argument count
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:<port>]
我尝试了另一个应用程序,我在运行 grpcurl
调用健康检查:
readinessProbe:
exec:
command: ["grpcurl", "-plaintext", "-protoset", "/app/HealthCheck.protoset", "localhost:8123", "service.HealthCheckService/GetHealthCheck","|", "jq", ".", "|","grep","200"]
periodSeconds: 10
failureThreshold: 2
successThreshold: 2
在 运行 kubectl describe pod
上,我得到了:
Normal Created 23s kubelet Created container app2
Normal Started 23s kubelet Started container app2
Warning Unhealthy 3s (x2 over 13s) kubelet Readiness probe failed: Too many arguments.
Try 'grpcurl -help' for more details.
这两个都失败了。
问题是,我如何写一个 Exec probe
,其中有一个管道(或多个管道)?
我正在使用 EKS v1.18。
(以上配置属于不同的应用。)
您需要实际使用 shell,因为那是 shell 功能。 sh -c "foo | bar"
或其他。还要记住,所有相关命令都需要在目标图像中可用。