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

monwx1rj  于 2024-01-07  发布在  Kubernetes
关注(0)|答案(1)|浏览(180)

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

  1. apiVersion: secrets-store.csi.x-k8s.io/v1
  2. kind: SecretProviderClass
  3. metadata:
  4. name: pp-dev-pp-webapp
  5. namespace: pp-dev
  6. spec:
  7. provider: aws
  8. secretObjects:
  9. - secretName: csi-secret-newrelic
  10. type: Opaque
  11. data:
  12. - key: NEW_RELIC_LICENSE_KEY
  13. objectName: NEW_RELIC_LICENSE_KEY
  14. parameters:
  15. objects: |
  16. - objectName: "arn:aws:secretsmanager:us-east-1:1xxxxxx:secret:xxxxxxxx"
  17. objectAlias: "NEW_RELIC_LICENSE_KEY"
  18. objectType: "secretsmanager"

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

xhv8bpkk

xhv8bpkk1#

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

  1. - name: NEW_RELIC_LICENSE_KEY
  2. valueFrom:
  3. secretKeyRef:
  4. name: csi-secret-newrelic
  5. key: NEW_RELIC_LICENSE_KEY

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

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: webapp-pod
  5. spec:
  6. containers:
  7. - name: webapp-pod
  8. image: kodekloud/simple-webapp-mysql
  9. env:
  10. - name: DB_Host
  11. valueFrom:
  12. secretKeyRef:
  13. name: db-secret
  14. key: DB_Host
  15. - name: DB_User
  16. valueFrom:
  17. secretKeyRef:
  18. name: db-secret
  19. key: DB_User
  20. - name: DB_Password
  21. valueFrom:
  22. secretKeyRef:
  23. name: db-secret
  24. key: DB_Password


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

  1. apiVersion: v1
  2. kind: Secret
  3. metadata:
  4. name: db-secret
  5. type: Opaque
  6. data:
  7. DB_Host: xxxx
  8. DB_User: xxxxx
  9. DB_Password: xxxxxx

展开查看全部

相关问题