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,则指定路径名,此目录下为空。
标签:mountpath,mount,subpath,volume,nginx,conf,挂载,k8s From: https://www.cnblogs.com/xiaoxiaomuyuyu/p/17393002.html