Z.S.K.'s Records

Kubernetes学习(volume挂载情况汇总)

在kubernetes中, 如果某个pod需要使用到volume, 且要将该volume挂载到宿主机上, 则需要注意存在被覆盖的情况,在这做一个汇总.

当挂载一个文件或者目录,宿主机或者容器存在与否, 所有情况如下:

宿主机 容器 运行结果
文件存在 文件不存在 挂载成功,容器中新建文件
目录存在 目录不存在 挂载成功,容器中新建目录
文件不存在 文件存在 挂载成功,宿主机新建该文件,容器中的文件被覆盖为空
文件存在 文件存在 挂载成功,容器内的文件内容被覆盖
目录存在 目录存在 挂载成功,容器内目录内容被覆盖
—— —— ——
文件存在 目录存在 容器启动失败
目录存在 文件存在 容器启动失败
—— —— ——
目录不存在 目录不存在 挂载成功,docker会自动在宿主机和容器内新建此目录
目录不存在 文件存在 容器启动失败
目录不存在 目录存在 挂载成功,容器内目录内容被覆盖(空)

除了使用volume之外,还经常使用到cofigmap对象,需要特别注意的是,如果使用configmap提示以下错误,

说明这次的挂载将一个路径挂载到了一个文件中, 这里需要使用subpath.

参考文章:

转载请注明原作者: 周淑科(https://izsk.me)

 wechat
Scan Me To Read on Phone
I know you won't do this,but what if you did?