kubernetes Pod中的环境未按预期加载

monwx1rj  于 5个月前  发布在  Kubernetes
关注(0)|答案(1)|浏览(68)

我正在使用下面的secretproviderclass,它正在创建secret并将其加载为pod中的env,但格式不正确。

apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: pp-dev-pp-webapp
  namespace: pp-dev
spec:
  provider: aws
  secretObjects:
  - secretName: csi-secret-newrelic
    type: Opaque
    data:
    - key: NEW_RELIC_LICENSE_KEY
      objectName: NEW_RELIC_LICENSE_KEY
  parameters:
    objects: |
        - objectName: "arn:aws:secretsmanager:us-east-1:1xxxxxx:secret:xxxxxxxx"
          objectAlias: "NEW_RELIC_LICENSE_KEY"
          objectType: "secretsmanager"

个字符
环境正在以下面的格式加载
第一个月
但它应该是
NEW_RELIC_LICENSE_KEY":"xxxxxxxxxxxxxxxx
尝试通过注解掉test_name引用来编辑secretstoredriver和部署,但没有帮助。

xhv8bpkk

xhv8bpkk1#

看起来这个问题与您如何引用pod的env部分中的secret有关。要获得所需的格式,请引用key,但不要在环境变量名称中添加key:

- name: NEW_RELIC_LICENSE_KEY
    valueFrom:
      secretKeyRef:
        name: csi-secret-newrelic
        key: NEW_RELIC_LICENSE_KEY

字符串
这将使用从secret中检索的值设置env NEW_PLICIC_LICENSE_KEY。
为了简单起见,我引用了这些清单。下面是一个简单的pod示例,它从名为db-secret的Kubernetes secret中获取envs:

apiVersion: v1
kind: Pod
metadata:
  name: webapp-pod
spec:
  containers:
  - name: webapp-pod
    image: kodekloud/simple-webapp-mysql
    env:
    - name: DB_Host
      valueFrom:
        secretKeyRef:
          name: db-secret
          key: DB_Host
    - name: DB_User
      valueFrom:
        secretKeyRef:
          name: db-secret
          key: DB_User
    - name: DB_Password
      valueFrom:
        secretKeyRef:
          name: db-secret
          key: DB_Password


下面是一个简单的kubernetes secret name模板:

apiVersion: v1
kind: Secret
metadata:
  name: db-secret
type: Opaque
data:
  DB_Host: xxxx
  DB_User: xxxxx
  DB_Password: xxxxxx

相关问题