k8s-mount中subpath的用法

1.k8s中挂载的如果是pvc,那么挂载的应该是目录,在subpath处如果有填写,那subpath处是volume的子目录,也就是说把容器的mountpath的路径,映射到相应的volume里的path路径里,例如将mysql里的/var/lib/mysql 映射到volume下的mysql目录,则subpath为mysql,如果是直接映射到volume只subpath空闲不写,此时的subpath主要是为了多个pod共同使用一个volume,不同的模块pod的数据可以存放在一个volume,只需要给他们分不同的volume的文件路径即可。

2.k8s中挂载的如果是cm,如果cm中的是单个文件,那么需要挂载在容器的一个文件,那么应该写subpath,此时的subpath为文件名,与mountpath最后的文件名一致,如mountpath为/etc/nginx/nginx.conf,则subpath应写nginx.conf,此时原本容器里这个文件是存在的挂载成功。如果mountpath的挂载点不是一个文件,而是一个文件夹,那么subpath中的文件不存在,则会挂载一个地址同mountpath的文件夹,此时subpath不起作用,例如mountpath为 /etc/nginx/conf.m,subpath为conf.p,则容器中会出现一个位于/etc/nginx/conf.m的空目录。使用volume将ConfigMap作为文件或目录直接挂载,其中每一个key-value键值对都会生成一个文件,key为文件名,value为内容。

mountpath为挂载的结果,mountpath为文件名路径名,subpath为文件名,如果有subpath切subpath的搜索结果为true,则指定路径和文件名,如果subpath搜索结果为false,则指定路径名,此目录下为空。

posted @   潇潇暮鱼鱼  阅读(878)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示