最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解k8s ConfigMap 中 subPath 字段和 items 字段

 更新時(shí)間:2023年03月02日 15:23:44   作者:椰汁菠蘿  
volumeMounts.subPath 屬性可用于指定所引用的卷內(nèi)的子路徑,而不是其根路徑,這篇文章主要介紹了詳解k8s ConfigMap 中 subPath 字段和 items 字段,需要的朋友可以參考下

Kubernetes中什么是subPath

有時(shí),在單個(gè) Pod 中共享卷以供多方使用是很有用的。volumeMounts.subPath 屬性可用于指定所引用的卷內(nèi)的子路徑,而不是其根路徑。

這句話理解了,基本就懂subPath怎么用了,比如我們要替換nginx.cnf, 掛載的ConfigMap是一個(gè)文件夾,如果沒(méi)有subPath,那/etc/nginx/nginx.cnf將變成一個(gè)文件夾,subPath是用來(lái)指定卷內(nèi)子路徑的! 按照邏輯subPath應(yīng)該在volumes下進(jìn)行設(shè)置會(huì)比較合理,這可能就是它不好理解的根本原因。

什么時(shí)候應(yīng)該使用 subPath

  • 場(chǎng)景一: 一個(gè)共享卷, 掛載多個(gè)路徑.
  • 場(chǎng)景二: ConfigMap或Secret掛載到特定目錄的特定路徑, 而該目錄下已經(jīng)有其他文件且不希望被覆蓋掉

1. subPath字段的作用

在Linux中,將目錄A掛載到目錄B,則目錄B原有的文件都會(huì)被目錄A下的文件覆蓋。

那么在k8s中,如何將configmap掛載到容器中某個(gè)目錄的文件中呢?答案是使用subPath。

subPath可以將configMap和secret作為文件掛載到容器中而不覆蓋掛載目錄下的文件。

話不多說(shuō),直接看一個(gè)例子。

制作案例鏡像:

dockerfile:

FROM busybox
WORKDIR /workspace
RUN touch a.txt b.txt c.txt

切換到dockerfile目錄下執(zhí)行:

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

configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: configmap
  namespace: dev
data:
  info: |
    username:admin
    password:123456
  info2: zhangssssssssssssssssssssssssss

pod1.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod1
  namespace: dev
spec:
  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: v1
kind: Pod
metadata:
  name: pod2
  namespace: dev
spec:
  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 dev
NAME   READY   STATUS    RESTARTS   AGE
pod1   1/1     Running   0          2m20s
pod2   1/1     Running   0          14s

可以看到,因?yàn)閜od1中是將configmap直接掛載到了容器的workspace目錄,由于Linux的目錄掛載特性(可以看這篇:什么是掛載,Linux掛載詳解),原來(lái)的workspace目錄下的文件將會(huì)被掛載過(guò)來(lái)的目錄下(可以將configmap看成一個(gè)目錄,因?yàn)槊總€(gè)key都是一個(gè)文件)的文件所覆蓋,因此workspace中只有configmap中的info和info2文件。如果不想被覆蓋,則要以文件的方式進(jìn)行掛載,如pod2.yaml中所示,注意mountPath和subPath的寫(xiě)法,subPath此時(shí)指的就是configMap中的key,也就是文件名。

2. items字段的作用

假如不想以key名作為配置文件名可以引入items 字段,在其中逐個(gè)指定要用相對(duì)路徑path替換的key:

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

items還有一個(gè)作用,就是只有items下的key對(duì)應(yīng)的文件會(huì)被掛載到容器中。

比如pod1.yaml中不想把info和info2都掛載到workspace目錄下,而只需要掛載info到workspace目錄下,則可以將pod1.yaml的volumes字段修改為:

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

到此這篇關(guān)于詳解k8s ConfigMap 中 subPath 字段和 items 字段的文章就介紹到這了,更多相關(guān)k8s subPath和 items內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • IPVS下CoreDNS滾動(dòng)更新解析失敗原理探究

    IPVS下CoreDNS滾動(dòng)更新解析失敗原理探究

    這篇文章主要為大家介紹了IPVS下CoreDNS滾動(dòng)更新解析失敗原理探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • k8s自身原理service及實(shí)現(xiàn)圖文示例解析

    k8s自身原理service及實(shí)現(xiàn)圖文示例解析

    這篇文章主要為大家介紹了k8s自身原理service圖文示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • k8s自動(dòng)化安裝腳本(二進(jìn)制)的操作步驟

    k8s自動(dòng)化安裝腳本(二進(jìn)制)的操作步驟

    Kubernetes?k8s安裝腳本,非常好用,下面這篇文章主要給大家介紹了關(guān)于k8s自動(dòng)化安裝腳本(二進(jìn)制)的操作步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • K8S部署Kafka界面管理工具(kafkamanager)方法詳解

    K8S部署Kafka界面管理工具(kafkamanager)方法詳解

    這篇文章主要介紹了K8S部署Kafka界面管理工具(kafkamanager)方法詳解,需要的朋友可以參考下
    2022-01-01
  • helmfile聲明式部署Helm?Chart使用詳解

    helmfile聲明式部署Helm?Chart使用詳解

    這篇文章主要為大家介紹了helmfile聲明式部署Helm?Chart使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 詳解kubernetes pod的編排和生命周期

    詳解kubernetes pod的編排和生命周期

    這篇文章主要介紹了kubernetes pod的編排和生命周期的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用K8S,感興趣的朋友可以了解下
    2021-04-04
  • K8S之StatefulSet有狀態(tài)服務(wù)詳解

    K8S之StatefulSet有狀態(tài)服務(wù)詳解

    本文主要介紹了K8S之StatefulSet有狀態(tài)服務(wù)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 最新青龍面板2.10.2搭建+XDD-PLUS的保姆級(jí)教程

    最新青龍面板2.10.2搭建+XDD-PLUS的保姆級(jí)教程

    這篇文章主要介紹了最新青龍面板2.10.2搭建+XDD-PLUS的保姆級(jí)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • 一篇文章讀懂K8S的PV和PVC以及實(shí)踐攻略

    一篇文章讀懂K8S的PV和PVC以及實(shí)踐攻略

    本文詳細(xì)介紹了Kubernetes中的存儲(chǔ)卷(Volume)機(jī)制,包括PersistentVolume(PV)、PersistentVolumeClaim(PVC)及其與后端存儲(chǔ)的關(guān)系,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Kubernetes中crictl的詳細(xì)用法教程與應(yīng)用實(shí)戰(zhàn)記錄

    Kubernetes中crictl的詳細(xì)用法教程與應(yīng)用實(shí)戰(zhàn)記錄

    crictl作為Kubernetes的容器運(yùn)行時(shí)接口(CRI)的命令行工具,為Kubernetes的調(diào)試和管理提供了強(qiáng)大的支持,通過(guò)本文的詳細(xì)介紹,你應(yīng)該已經(jīng)掌握了crictl的基本安裝、配置、常用命令以及高級(jí)用法,需要的朋友可以參考下
    2024-07-07

最新評(píng)論

永城市| 灌阳县| 延寿县| 小金县| 正阳县| 夏邑县| 鹿泉市| 旅游| 祁门县| 凤凰县| 佛教| 洱源县| 浦北县| 东海县| 海阳市| 庐江县| 西乌| 大理市| 年辖:市辖区| 柳河县| 达日县| 阿拉善右旗| 嫩江县| 西华县| 华宁县| 平顶山市| 黎川县| 蒙山县| 石泉县| 阿拉善盟| 宁海县| 拜城县| 富蕴县| 军事| 界首市| 灵寿县| 滁州市| 哈密市| 芒康县| 夏邑县| 沧州市|