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

如何在Kubernetes Pod中挂载带.yml后缀的Secret?

解决Secret挂载后无.yml后缀的问题

有两种常见思路可以解决这个问题,具体如下:

方法一:修改ExternalSecret的secretKey为带.yml后缀的名称

Kubernetes挂载Secret时,Secret中的键名(secretKey)就是最终挂载到Pod里的文件名。所以你只需要把ExternalSecret中data字段的secretKey改成带.yml后缀的名称即可:

apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
  name: test
  namespace: test-nm
spec:
  secretStoreRef:
    kind: 
    name: 
  refreshInterval: "24h"
  target:
    name: test
    creationPolicy: 'Owner'
    deletionPolicy: "Delete"
  data:
  - secretKey: some_key_name.yml  # 这里加上.yml后缀
    remoteRef:
      key: some_key.yml

同时注意你的Deployment配置里有个小问题:secretName应该填ExternalSecret生成的Secret名称test,而不是some_key_name,修正后的Deployment挂载部分:

volumes:
- name: some-secret
  secret:
    secretName: test  # 这里改为ExternalSecret的target.name
containers:
- name: some_app
  volumeMounts:
    - name: some-secret
      mountPath: /user/secrets/

这样挂载后,/user/secrets/目录下就会出现some_key_name.yml文件。

方法二:通过Secret挂载的items字段指定文件名

如果你不想修改Secret里的键名,可以在Deployment的secret卷配置中添加items字段,手动映射Secret的键到带后缀的文件名:

volumes:
- name: some-secret
  secret:
    secretName: test  # 同样要修正为正确的Secret名称
    items:
    - key: some_key_name  # Secret里原有的键名
      path: some_key_name.yml  # 指定挂载后的文件名(带.yml后缀)
containers:
- name: some_app
  volumeMounts:
    - name: some-secret
      mountPath: /user/secrets/

这种方式适合需要保留Secret内部键名,但挂载时要自定义文件名的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:18:19