我正在尝试使用获得在 Kubernetes 中的活性探测中。代码如下:
apiVersion: v1
kind: Pod
metadata:
namespace: test
labels:
test: liveness
name: liveness-exec
spec:
containers:
- name: busybox
image: busybox
command:
- sleep
- "99999999"
livenessProbe:
exec:
command:
- wget
- -O-
- --header=
- "DD-APPLICATION-KEY: abcde"
- --header=
- "DD-API-KEY: a123456"
- https://api.datadoghq.com/api/v1/monitor/1234567 | grep \"overall_state\":\"OK\"
initialDelaySeconds: 10
periodSeconds: 10
但是当我使用时我遇到以下错误描述pod中的命令:
Liveness probe failed: wget: bad port ' abcde'
我的目标是检查 Datadog 中的警报。如果警报为红色,则 pod 将重新启动。
这获得命令在终端中有效。看起来 YAML 文件在使用标头时遇到了一些问题。
答案1
从中删除等号--header=
并--header
改用
command:
- wget
- -O-
- --header
- "DD-APPLICATION-KEY: abcde"
- --header
- "DD-API-KEY: a123456"
- https://api.datadoghq.com/api/v1/monitor/1234567
- -q
initialDelaySeconds: 10
periodSeconds: 10
请注意,在活动性探测中使用 wget 可能会对系统造成不必要的负载。建议使用更轻量级的命令(如curl
或 )nc
来检查应用程序的运行状况。请参阅此内容关联
答案2
我认为这是重写这个的简单方法:
command:
- /bin/sh
- -c
- 'wget -O- ...'