You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes:配置文件中引用环境变量失效(探针场景)

问题描述

按照Kubernetes官方文档的说明,配置里引用环境变量要用$(ENV_VAR)语法,但我碰到个问题:就绪探针(Readiness Probe)和存活探针(Liveness Probe)的API请求里,拿到的令牌值是$(KUBERNETES_AUTH_TOKEN),不是预期的abcdefg。我的配置如下:

containers:
    env:
      - name: KUBERNETES_AUTH_TOKEN
        value: "abcdefg"
    lifecycle:
      preStop:
        exec:
          command:
            - "sh"
            - "-c"
            - |
              curl -H "Authorization: $(KUBERNETES_AUTH_TOKEN)" -H "Content-Type: application/json" -X GET http://localhost:9443/pre-stop
    readinessProbe:
      failureThreshold: 3
      httpGet:
        path: /status
        port: 9853
        scheme: HTTP
        httpHeaders:
          - name: Authorization
            value: $(KUBERNETES_AUTH_TOKEN)

    livenessProbe:
      failureThreshold: 3
      httpGet:
        path: /status
        port: 9853
        scheme: HTTP
        httpHeaders:
          - name: Authorization
            value: $(KUBERNETES_AUTH_TOKEN)
解决方案

核心原因是:Kubernetes的httpGet探针里的httpHeaders字段不支持直接用$(ENV_VAR)解析环境变量。preStop钩子能正常生效是因为它用了exec模式,通过shell执行命令,shell会自动替换环境变量;但httpGet的header值会被直接当作字符串发送,不会做变量替换。

给你两种解决办法:

办法一:换成exec类型探针

把httpGet探针改成exec探针,用curl命令发起请求,这样shell就能正常解析环境变量了。修改后的配置示例:

readinessProbe:
  failureThreshold: 3
  exec:
    command:
      - "sh"
      - "-c"
      - |
        curl -H "Authorization: $(KUBERNETES_AUTH_TOKEN)" -H "Content-Type: application/json" -X GET http://localhost:9853/status
livenessProbe:
  failureThreshold: 3
  exec:
    command:
      - "sh"
      - "-c"
      - |
        curl -H "Authorization: $(KUBERNETES_AUTH_TOKEN)" -H "Content-Type: application/json" -X GET http://localhost:9853/status

办法二:用Downward API传递变量到文件(复杂方案)

如果一定要用httpGet探针,可以通过Downward API把环境变量写入容器内的某个文件,再借助sidecar容器或者自定义初始化脚本,把文件里的令牌值注入到探针请求头里。不过这种步骤多,不如办法一直接,优先推荐办法一。

内容的提问来源于stack exchange,提问作者limo_756

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 02:50:23