通过 Kubernetes 中的服务传递环境变量?

Pass environment variable through service in Kubernetes?

有没有办法通过 Kubernetes 中的服务传递环境变量?

我试过像这样将它传递到我的服务 yaml 中:

apiVersion: v1
kind: Service
metadata:
  labels:
    name: kafka
  name: kafka
spec:
  ports:
    - port: 9092
    selector:
      name: kafka
  env:
    - name: BROKER_ID
      value: "1"

该服务正在被 kubectl 使用并被创建。

我已经确认该服务已通过 env | grep KAFKA 连接到我的容器,并且变量的输出大大增加,正如我的服务启动时所预期的那样。

但是,我想传入自定义环境变量,这些变量必须根据容器所在的实例而有所不同。

这可能吗?

这是目前为止我找到的最好的方法:(需要阅读) https://github.com/kubernetes/kubernetes/issues/4710

粗略地说,在执行脚本之前在挂载的文件中创建一个秘密并获取它。

Kubernetes 的设计方式使服务与 Pods 分离。您不能将 Secret 或环境变量注入 运行 Pod。您想要的是将 Pod 配置为使用 env var 或 Secret。