1、当/usr/local/noah2/basp-collector/conf下不存在application.yml的时候,挂载到该目录的application.yml文件大小是0。
2、当/usr/local/noah2/basp-collector/conf下存在application.yml的时候,挂载到该目录的application.yml无法覆盖已有的application.yml。
volumeMounts:
- name: noah-collector-config
mountPath: /usr/local/noah2/basp-collector/conf/application.yml
subPath: application.yml
- name: noah-collector-conf
mountPath: /usr/local/noah2/basp-collector/conf
volumes:
- name: noah-collector-config
configMap:
name: noah-collector
- name: noah-collector-conf
hostPath: #本地磁盘挂载conf文件夹
path: /usr/local/noah2/basp-collector/conf
type: DirectoryOrCreate
有大哥知道原因吗?
首先,宿主机的
/usr/local/noah2/basp-collector/conf
目录,会覆盖容器的目录(所以容器内的目录里有什么不需要关注)。1、挂载到该目录的
application.yml
文件大小是0的问题宿主机上是无法看到容器里挂的configmap类型的内容,只有个文件名,文件是空,是正常的,也是安全策略的保护,类型不相通,只有容器内可以看到内容。
2、挂载到该目录的application.yml无法覆盖已有的application.yml
必然的,容器创建的时候,宿主机的目录先挂载上,其次被configmap的值会将其覆盖,是合理的。
验证了一下,和大哥说的一样
你的答案