如何将所有Secrets中的所有值传递给Kuberentes中的env变量?

Ale*_*ein 5 kubernetes

我在Kubernetes中有多个秘密。它们全部包含许多值,例如:

apiVersion: v1
kind: Secret
metadata:
  name: paypal-secret
type: Opaque
data:
  PAYPAL_CLIENT_ID: base64_PP_client_id
  PAYPAL_SECRET: base64_pp_secret
stringData:
  PAYPAL_API: https://api.paypal.com/v1
  PAYPAL_HOST: api.paypal.com
Run Code Online (Sandbox Code Playgroud)

我很好奇如何将所有值从所有Secrets传递到ReplicaSet例如。

我尝试了这种方法:

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: pp-debts
  labels:
    environment: prod
spec:
  replicas: 1
  selector:
    matchLabels:
      environment: prod
  template:
    metadata:
      labels:
        environment: prod
    spec:
      containers:
      - name: integration-app
        image: my-container-image
        envFrom:
        - secretRef:
          name: intercom-secret
        envFrom:
        - secretRef:
            name: paypal-secret
        envFrom:
        - secretRef:
            name: postgres-secret
        envFrom:
        - secretRef:
            name: redis-secret
Run Code Online (Sandbox Code Playgroud)

但是,当我连接到pod并查看env变量时,我只能从中看到值redis-secret

Rya*_*son 9

尝试使用一个envFrom带有多个条目的条目,如下所示:

      - name: integration-app
        image: my-container-image
        envFrom:
        - secretRef:
            name: intercom-secret
        - secretRef:
            name: paypal-secret
        - secretRef:
            name: postgres-secret
        - secretRef:
            name: redis-secret
Run Code Online (Sandbox Code Playgroud)

https://dchua.com/2017/04/21/load-env-variables-from-configmaps-and-secrets-upon-pod-boot/底部有一个示例

  • 我收到错误:错误验证数据:[ValidationError(ReplicaSet.spec.template.spec.containers[0].envFrom[0]): unknown field "name" in io.k8s.api.core.v1.EnvFromSource, ValidationError (ReplicaSet.spec.template.spec.containers[0].envFrom[1]):io.k8s.api.core.v1.EnvFromSource 中的未知字段“name”,ValidationError(ReplicaSet.spec.template.spec.containers[ 0].envFrom[2]):io.k8s.api.core.v1.EnvFromSource 中的未知字段“name”,ValidationError(ReplicaSet.spec.template.spec.containers[0].envFrom[3]):未知字段io.k8s.api.core.v1.EnvFromSource 中的“名称”]; (3认同)
  • 我编辑了上面的Yaml以使其正常工作;原始帖子的格式有误,导致@AlexFruzenshtein在上面的评论中出现错误。 (2认同)