iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >k8s ConfigMap中subPath字段和items字段怎么使用
  • 533
分享到

k8s ConfigMap中subPath字段和items字段怎么使用

2023-07-05 08:07:00 533人浏览 薄情痞子
摘要

本文小编为大家详细介绍“k8s ConfigMap中subPath字段和items字段怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“k8s ConfigMap中subPath字段和items字段怎么使用”文章能

本文小编为大家详细介绍“k8s ConfigMap中subPath字段和items字段怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“k8s ConfigMap中subPath字段和items字段怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

kubernetes中什么是subPath

有时,在单个 Pod 中共享卷以供多方使用是很有用的。volumeMounts.subPath 属性可用于指定所引用的卷内的子路径,而不是其根路径。

这句话理解了,基本就懂subPath怎么用了,比如我们要替换Nginx.cnf, 挂载的ConfigMap是一个文件夹,如果没有subPath,那/etc/nginx/nginx.cnf将变成一个文件夹,subPath是用来指定卷内子路径的! 按照逻辑subPath应该在volumes下进行设置会比较合理,这可能就是它不好理解的根本原因。

什么时候应该使用 subPath

  • 场景一: 一个共享卷, 挂载多个路径.

  • 场景二: ConfigMap或Secret挂载到特定目录的特定路径, 而该目录下已经有其他文件且不希望被覆盖掉

1. subPath字段的作用

linux中,将目录A挂载到目录B,则目录B原有的文件都会被目录A下的文件覆盖。

那么在k8s中,如何将configmap挂载到容器中某个目录的文件中呢?答案是使用subPath

subPath可以将configMap和secret作为文件挂载到容器中而不覆盖挂载目录下的文件。

话不多说,直接看一个例子。

制作案例镜像:

Dockerfile:

FROM busyboxWORKDIR /workspaceRUN touch a.txt b.txt c.txt

切换到dockerfile目录下执行:

docker build -t mydocker:latest .docker tag mydocker:latest zengfeng666/mydocker:1.0docker push zengfeng666/mydocker:1.0

configmap.yaml

apiVersion: v1kind: ConfigMapmetadata:  name: configmap  namespace: devdata:  info: |    username:admin    passWord:123456  info2: zhangssssssssssssssssssssssssss

pod1.yaml

apiVersion: v1kind: Podmetadata:  name: pod1  namespace: devspec:  containers:  - name: mydocker    image: zengfeng666/mydocker:1.0    command: ["/bin/sh", "-c", "while true; do sleep 2; done;"]    volumeMounts:    - name: config      mountPath: /workspace  volumes:  - name: config    configMap:      name: configmap

pod2.yaml

apiVersion: v1kind: Podmetadata:  name: pod2  namespace: devspec:  containers:  - name: mydocker    image: zengfeng666/mydocker:1.0    command: ["/bin/sh", "-c", "while true; do sleep 2; done;"]    volumeMounts:    - name: config      mountPath: /workspace/info      subPath: info    - name: config      mountPath: /workspace/info2      subPath: info2  volumes:  - name: config    configMap:      name: configmap
$ kubectl create -f pod1.yaml$ kubectl create -f pod2.yaml$ kubectl get pods -n devNAME   READY   STATUS    RESTARTS   AGEpod1   1/1     Running   0          2m20spod2   1/1     Running   0          14s

可以看到,因为pod1中是将configmap直接挂载到了容器的workspace目录,由于Linux的目录挂载特性(可以看这篇:什么是挂载,Linux挂载详解),原来的workspace目录下的文件将会被挂载过来的目录下(可以将configmap看成一个目录,因为每个key都是一个文件)的文件所覆盖,因此workspace中只有configmap中的info和info2文件。如果不想被覆盖,则要以文件的方式进行挂载,如pod2.yaml中所示,注意mountPath和subPath的写法,subPath此时指的就是configMap中的key,也就是文件名。

k8s ConfigMap中subPath字段和items字段怎么使用

k8s ConfigMap中subPath字段和items字段怎么使用

2. items字段的作用

假如不想以key名作为配置文件名可以引入items 字段,在其中逐个指定要用相对路径path替换的key:

     volumes:      - name: config        configMap:          name: configmap          items:          - key: info         # 原文件名(key的名称)            path: userinfo    # 修改之后的文件名(key的名称)          - key: info2            path: userinfo2

items还有一个作用,就是只有items下的key对应的文件会被挂载到容器中。

比如pod1.yaml中不想把info和info2都挂载到workspace目录下,而只需要挂载info到workspace目录下,则可以将pod1.yaml的volumes字段修改为:

     volumes:      - name: config        configMap:          name: configmap          items:          - key: info                     path: info

读到这里,这篇“k8s ConfigMap中subPath字段和items字段怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: k8s ConfigMap中subPath字段和items字段怎么使用

本文链接: https://www.lsjlt.com/news/350564.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • k8s ConfigMap中subPath字段和items字段怎么使用
    本文小编为大家详细介绍“k8s ConfigMap中subPath字段和items字段怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“k8s ConfigMap中subPath字段和items字段怎么使用”文章能...
    99+
    2023-07-05
  • 详解k8sConfigMap中subPath字段和items字段
    目录Kubernetes中什么是subPath什么时候应该使用 subPath1. subPath字段的作用2. items字段的作用Kubernetes中什么是subPath 有时...
    99+
    2023-03-02
    k8s subPath和 items k8s subPath字段 k8s items字段
  • Mybatis中怎么使用sum对字段求和
    这篇文章主要讲解了“Mybatis中怎么使用sum对字段求和”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mybatis中怎么使用sum对字段求和”吧!使用sum对字段求和如下sql,为计算...
    99+
    2023-06-29
  • mysql怎么删除字段列表中的字段
    要删除字段列表中的字段,可以使用ALTER TABLE语句来删除字段。 例如,要删除表中的字段字段名,可以使用以下语句: ALTER...
    99+
    2024-05-13
    mysql
  • 怎么使用MySQL一个表中的字段更新另一个表中字段
    这篇文章将为大家详细讲解有关怎么使用MySQL一个表中的字段更新另一个表中字段,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1,修改1列update ...
    99+
    2024-04-02
  • mysql和mongodb怎么替换字段中某字符
    本篇内容主要讲解“mysql和mongodb怎么替换字段中某字符”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql和mongodb怎么替换字段中某字符”吧...
    99+
    2024-04-02
  • thinkphp中怎么调用mysql字段
    这篇文章主要介绍“thinkphp中怎么调用mysql字段”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“thinkphp中怎么调用mysql字段”文章能帮助大家解决问题。一、创建数据库表和数据在进行...
    99+
    2023-07-06
  • Linq Setting字段怎么用
    这篇文章将为大家详细讲解有关Linq Setting字段怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linq Setting字段存储本文介绍Linq Setting字段,这个用过Linq的人都知道...
    99+
    2023-06-17
  • sql怎么把两个字段合并到一个字段中
    在SQL中,可以使用CONCAT函数来合并两个字段到一个字段中。例如,假设有一个students表,包含first_name和las...
    99+
    2024-04-09
    sql
  • 使用awk怎么输出文本中的字段和列
    这期内容当中小编将会给大家带来有关使用awk怎么输出文本中的字段和列,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。例 1:我创建了一个名为 tecmintinfo.txt 的文本文件。# vi tecmi...
    99+
    2023-06-12
  • SQLite使用replace替换字段中的字符
    在SQLite中,可以使用REPLACE函数来替换字段中的字符。假设有一个名为"users"的表,其中有一个名为"name"的字段,...
    99+
    2023-09-12
    SQL
  • oracle怎么替换字段中的字符
    要在Oracle数据库中替换字段中的字符,可以使用Oracle的REPLACE函数。REPLACE函数用于在字符串中替换指定的字符或...
    99+
    2024-04-09
    oracle
  • oracle怎么提取字段中的数字
    要提取字段中的数字,可以使用正则表达式来匹配数字字符。在Oracle中,可以使用REGEXP_SUBSTR函数来实现。 假设要从一个...
    99+
    2024-04-09
    oracle
  • Mybatis中如何使用sum对字段求和
    目录使用sum对字段求和避免Mybatis sum求和返回null使用sum对字段求和 如下sql,为计算用户收益总和:   <select id="getTotal...
    99+
    2024-04-02
  • MySQL中怎么添加字段
    这期内容当中小编将会给大家带来有关MySQL中怎么添加字段,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  MySQL字段的长度有哪些  数值类型  列类型需要的存储量 ...
    99+
    2024-04-02
  • sql怎么去掉字段中的字符
    在SQL中,可以使用以下函数去掉字段中的字符:1. REPLACE函数:可以将字段中的指定字符替换为其他字符或者删除。语法如下:```REPLACE(column_name, 'old_character', 'new_char...
    99+
    2023-08-09
    sql
  • sqlserver怎么删除字段中的汉字
    要删除字段中的汉字,可以使用以下SQL语句来实现: UPDATE your_table SET your_column = REPL...
    99+
    2024-04-02
  • mysql中怎么修改字段
    在 mysql 中修改字段需执行以下步骤:使用 alter table 语句,后跟表名、字段名和新数据类型,例如:alter table my_table modify age varc...
    99+
    2024-05-01
    mysql
  • 使用MyBatis时数据库字段和实体字段不同如何解决
    这期内容当中小编将会给大家带来有关使用MyBatis时数据库字段和实体字段不同如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当数据库字段和实体bean中属性不一致时之前数据库Person名字字段是...
    99+
    2023-05-31
    mybatis 实体字段 数据库字段
  • sql中怎么去掉字段中的字符
    在SQL中,可以使用REPLACE函数来去掉字段中的特定字符。语法如下: SELECT REPLACE(column_nam...
    99+
    2024-03-02
    sql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作