k8s subPath详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s subPath详解相关的知识,希望对你有一定的参考价值。

参考技术A subPath的使用方法一共有两种:
1. 同一个pod中多容器挂载同一个卷时提供隔离
2. 将configMap和secret作为文件挂载到容器中而不覆盖挂载目录下的文件

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详解的主要内容,如果未能解决你的问题,请参考以下文章

K8s subPath

你真的搞清楚k8s的subpath了吗?

k8s configmap subpath bug

kubernetes常见故障

k8s的Service详解

k8s入门教程详解