K8s subPath
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8s subPath相关的知识,希望对你有一定的参考价值。
参考技术A原文地址: https://alphahinex.github.io/2021/01/31/k8s-subpath/
description: "卷 内 子路径"
date: 2021.01.31 10:34
categories:
- K8s
tags: [K8s, DevOps]
keywords: subPath, volumeMount, volume
在 K8s 中, VolumeMount 是用来挂载定义好的存储卷的。
其中有个属性 subPath 是这样描述的:
subPath 所定义的路径,指的是 卷(Volume)内的子路径 ,用于将卷内 subPath 所对应的目录或文件,挂载到容器的挂载点。不指定此参数时,默认是将卷的根路径中内容进行挂载。
假设一个容器有多个路径需要挂载,如 YouTrack 需要挂载 data 、 conf 、 logs 和 backups 四个路径。
或由于某些原因,创建出来的存储卷根路径中不是空的,但容器要求所挂载的路径中不能有其他内容,如 mysql5.7 创建有状态服务问题 。
此时就有了 subPath 的用武之地。
以上面 YouTrack 为例,存储卷相关配置如下:
可以仅创建一个存储卷,然后将 YouTrack 持久化所需的四个路径,通过 subPath 挂载到该卷的不同子路径中。
在 K8s ConfigMap 一文中,我们也提到了 subPath 的用法,可以用来将 ConfigMap 中指定的 key 挂载到对应的挂载点,如:
即将名为 nginx-config-vol 的 volume 中的 nginx.conf key 对应内容,以文件形式挂载到容器中 /etc/nginx/nginx.conf 路径。
需注意:在 ConfigMap 中使用 subPath 将影响 ConfigMap 内容变化时的自动更新。
以上是关于K8s subPath的主要内容,如果未能解决你的问题,请参考以下文章