![如何在 kubernetes 中的 yaml 文件中的活性探测中使用带有标头的 wget?](https://linux22.com/image/792920/%E5%A6%82%E4%BD%95%E5%9C%A8%20kubernetes%20%E4%B8%AD%E7%9A%84%20yaml%20%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E6%B4%BB%E6%80%A7%E6%8E%A2%E6%B5%8B%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%B8%A6%E6%9C%89%E6%A0%87%E5%A4%B4%E7%9A%84%20wget%EF%BC%9F.png)
我正在尝试使用获得在 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- ...'