K8s subPath

原文地址:https://alphahinex.github.io/2021/01/31/k8s-subpath/

cover

description: "卷 内 子路径"
date: 2021.01.31 10:34
categories:
- K8s
tags: [K8s, DevOps]
keywords: subPath, volumeMount, volume


定义

在 K8s 中,VolumeMount 是用来挂载定义好的存储卷的。

其中有个属性 subPath 是这样描述的:

Field Description
subPath
string
Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root).

subPath 所定义的路径,指的是 卷(Volume)内的子路径,用于将卷内 subPath 所对应的目录或文件,挂载到容器的挂载点。不指定此参数时,默认是将卷的根路径中内容进行挂载。

使用场景

挂载一个存储卷中的多个路径

假设一个容器有多个路径需要挂载,如 YouTrack 需要挂载 dataconflogsbackups 四个路径。

或由于某些原因,创建出来的存储卷根路径中不是空的,但容器要求所挂载的路径中不能有其他内容,如 mysql5.7 创建有状态服务问题

此时就有了 subPath 的用武之地。

以上面 YouTrack 为例,存储卷相关配置如下:

volumeMounts:
- name: volume-d3gekc
  mountPath: /opt/youtrack/data
  subPath: youtrack/data
- name: volume-d3gekc
  mountPath: /opt/youtrack/conf
  subPath: youtrack/conf
- name: volume-d3gekc
  mountPath: /opt/youtrack/logs
  subPath: youtrack/logs
- name: volume-d3gekc
  mountPath: /opt/youtrack/backups
  subPath: youtrack/backups

可以仅创建一个存储卷,然后将 YouTrack 持久化所需的四个路径,通过 subPath 挂载到该卷的不同子路径中。

挂载 ConfigMap 中的一个文件

K8s ConfigMap 一文中,我们也提到了 subPath 的用法,可以用来将 ConfigMap 中指定的 key 挂载到对应的挂载点,如:

volumeMounts:
- name: nginx-config-vol
  mountPath: /etc/nginx/nginx.conf # 也可挂载到文件
  subPath: nginx.conf # 挂载到文件时,需设置子路径

即将名为 nginx-config-vol 的 volume 中的 nginx.conf key 对应内容,以文件形式挂载到容器中 /etc/nginx/nginx.conf 路径。

需注意:在 ConfigMap 中使用 subPath 将影响 ConfigMap 内容变化时的自动更新。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文地址:https://alphahinex.github.io/2020/11/22/k8s-config-m...
    AlphaHinex阅读 5,237评论 0 2
  • subPath的使用方法一共有两种:1. 同一个pod中多容器挂载同一个卷时提供隔离2. 将configMap和s...
    涛子_024d阅读 17,299评论 1 1
  • [toc] k8s 入门之16个基本概念 Kubernetes是Google开源的容器集群管理系统,是Google...
    会理发的店小二阅读 4,402评论 0 0
  • Pod Pod的组成 ? 每个Pod都有一个Pause容器和多个业务容器。多个业务容器共享Pause容器的IP和V...
    桢桢claire阅读 4,132评论 0 0
  • 1. configMap 1.1 原理介绍 给容器内应用程序传递参数的实现方式: 将配置文件直接打包到镜像中,但这...
    infoshow阅读 4,406评论 0 1

友情链接更多精彩内容