如何在 kubernetes 中的 yaml 文件中的活性探测中使用带有标头的 wget?

如何在 kubernetes 中的 yaml 文件中的活性探测中使用带有标头的 wget?

我正在尝试使用获得在 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- ...'

相关内容