首页/云/Kubernetes 速查/subPath 挂载不接收更新
配置与存储54 条

subPath 挂载不接收更新

用 subPath 把单个键挂成文件时,卷内容的后续更新不会同步到容器——这是「改了 ConfigMap/Secret 但容器里还是旧值」的常见根因,需要重建 Pod 或改用目录挂载。

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

subPath 写法

subPath 写法
volumes:
  - name: config
    configMap:
      name: app-config
containers:
  - name: app
    volumeMounts:
      - name: config
        mountPath: /etc/app/app.properties
        subPath: app.properties

验证与重建

验证与重建
kubectl exec -it web-x -- cat /etc/app/app.properties
kubectl get cm app-config -o jsonpath='{.data.app\.properties}'
kubectl rollout restart deploy/web    # 需要新值时重建 Pod
subPath 在 Pod 启动时建立映射,之后源键的增删改都不会传播进容器。

易错点

  • 以为 subPath 只是「挂一个文件更整洁」:它同时关闭了更新传播,排障时先确认挂载方式
  • ConfigMap 的键被删除后,subPath 容器内的旧文件仍在,容易误判为「配置没删掉」

数据来源与参考

  • Kubernetes 官方文档 · ConfigMap(更新传播:subPath 例外)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌