首页/云/Kubernetes 速查/Secret 以卷方式挂载
配置与存储54 条

Secret 以卷方式挂载

把 Secret 键落成文件挂给容器(默认权限 0644,可按需收紧到 0440/0400);便于证书、配置文件类凭据使用。

Kubernetes 速查云更新于 2026-10-13

机制定位

把 Secret 以卷的形式挂进容器,每个键落成一个文件,默认权限 0644,可以通过 defaultMode 或 items 里的 mode 收紧到 0440、0400。适用平台是 Kubernetes。相比环境变量注入,卷挂载更适合证书、密钥文件这类需要「落成文件」的凭据,并且内容会随 Secret 更新自动同步(分钟级),便于轮换;subPath 挂载则不会更新,需要重建 Pod。

基本信息

适用平台Kubernetes,Pod 的 volumes.secret
默认权限0644(容器内任意用户可读)
权限调整卷级 defaultMode 或按文件设置 items[].mode
更新行为普通挂载分钟级同步,subPath 不更新

典型使用场景

  • 证书与私钥:挂到 /etc/tls 由应用直接读取,避免写进镜像
  • 凭据文件:部分中间件只认配置文件里的密码,不适合用环境变量
  • 多容器共享:同一 Secret 挂给多个容器,保证凭据一致
  • 权限收紧:私钥文件设 0400,限制同 Pod 内其他进程可读
  • 轮换验证:观察文件内容随 Secret 更新而变化的时间点

卷挂载示例

卷挂载示例
spec:
  containers:
    - name: app
      volumeMounts:
        - name: tls
          mountPath: /etc/tls
          readOnly: true
  volumes:
    - name: tls
      secret:
        secretName: app-tls
        items:
          - key: tls.crt
            path: tls.crt
          - key: tls.key
            path: tls.key
            mode: 0400

验证权限与更新

验证权限与更新
kubectl exec -it web-x -- ls -l /etc/tls                  # 文件列表
kubectl exec -it web-x -- stat -c '%a %n' /etc/tls/tls.key  # 权限是否符合预期
kubectl exec -it web-x -- cat /etc/tls/tls.crt | head -2    # 内容抽查
kubectl get secret app-tls -o jsonpath='{.data.tls\.key}' | base64 -d | head -c 60   # 与源比对

挂载方式对比

维度普通卷挂载subPath 挂载
更新传播分钟级同步不传播,需重建 Pod
目录影响遮蔽目标目录内容只挂单个文件,不影响其他内容
权限控制defaultMode 或 items mode沿用源文件权限,控制有限
适用场景证书目录、多文件凭据需要覆盖镜像内已有文件的场景
卷挂载的 Secret 会随更新分钟级同步,适合需要轮换的证书;文件权限按最小可读设置,避免同 Pod 内其他容器越权读取。
应用若只在启动时读取一次证书,Secret 更新后仍会使用旧内容,需要应用支持热加载或用滚动重启触发重读。

权限与轮换要点

  • 私钥文件显式设置 0400 或 0440,默认 0644 对同 Pod 内其他容器都是可读的
  • 轮换后核对文件内容变化的时间点,再确认应用是否真的重读
  • 应用不支持热加载时用滚动重启触发,避免新旧凭据交错的窗口过大
  • 用 items 只挂需要的键,减少无意暴露的字段数量

易错点

  • 默认 0644 意味着容器内任意用户可读,涉及私钥时显式设置 0400/0440
  • 应用启动时读一次证书则轮换后仍需重载;支持 SIGHUP 或热加载的组件要提前配置好触发方式
  • 挂载目录会遮蔽镜像里的同名目录内容,覆盖既有配置目录前先确认镜像里有什么
  • 用 subPath 挂证书又期待自动轮换:subPath 不传播更新,必须重建 Pod 才能生效

数据来源与参考

  • Kubernetes 官方文档 · Secrets(以卷使用)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌