使用秘密的httpHeaders定义livenessProbe

Jen*_*ica 11 kubernetes kubernetes-health-check

我想用一个值为secret的httpHeader定义一个livenessProbe.

此语法无效:

livenessProbe:
  httpGet:
    path: /healthz
    port: 8080
    httpHeaders:
      - name: X-Custom-Header
        valueFrom:
          secretKeyRef:
            name: my-secret-key
            value: secret
Run Code Online (Sandbox Code Playgroud)

如果我将my-secret-keyvalue 指定secret为名为的环境变量MY_SECRET_KEY,则以下内容可以起作用:

livenessProbe:
  exec:
    command:
      - curl
      - --fail
      - -H
      - "X-Custom-Header: $MY_SECRET_KEY"
      - 'http://localhost:8080/healthz'
Run Code Online (Sandbox Code Playgroud)

不幸的是,它不是由于评估报价的方式.如果我curl --fail -H "X-Custom-Header: $MY_SECRET_KEY" http://localhost:8080/healthz直接在容器上键入命令,它就可以工作.

我也试过很多单引号组合并转义双引号.

有没有人知道一个解决方法?

lwo*_*olf 1

我能想到的一种解决方法是创建一些 bash 脚本来运行此运行状况检查,并像往常一样将您的秘密数据放入环境中。