Subpath
有时,在单个 Pod 中共享卷以供多方使用是很有用的。volumeMounts.subPath
属性可用于指定所引用的卷内的子路径,而不是其根路径。
Subpath
Subpath
典型的应用场景示例就是Kubernetes官方的示例:
一个使用同一共享卷的、内含 LAMP 栈(Linux Apache Mysql PHP)的 Pod 的示例。HTML 内容被映射到卷的
html
文件夹,数据库将被存储在卷的mysql
文件夹中:
例如, 我希望将setenv.sh
这样的一个初始化配置环境变量的脚本挂载到tomcat的bin目录: /opt/tomcat/bin
下.
如果我不使用subpath, 直接将该ConfigMap 挂载到/opt/tomcat/bin
目录下, 那么该目录下已有的文件全部被覆盖.
所以正确的做法是使用Subpath
进行挂载:
最终挂载效果如下图所示:
特别注意mountPath
和subPath
的写法, 最后的path要保持一致.
如mountPath
是: /opt/tomcat/bin/setenv.sh
; subPath
是: setenv.sh
.
mountPath
不要漏写为: /opt/tomcat/bin/