Kubernetes将configmap文件挂载到hostPath路径下失败

TANG 发表于: 2022-10-22   最后更新时间: 2022-10-24 14:58:44   639 游览

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

有大哥知道原因吗?

发表于 2022-10-22

首先,宿主机的/usr/local/noah2/basp-collector/conf目录,会覆盖容器的目录(所以容器内的目录里有什么不需要关注)。

1、挂载到该目录的application.yml文件大小是0的问题
宿主机上是无法看到容器里挂的configmap类型的内容,只有个文件名,文件是空,是正常的,也是安全策略的保护,类型不相通,只有容器内可以看到内容。

2、挂载到该目录的application.yml无法覆盖已有的application.yml
必然的,容器创建的时候,宿主机的目录先挂载上,其次被configmap的值会将其覆盖,是合理的。

TANG -> 半兽人 1年前

验证了一下,和大哥说的一样

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题