configMap中 subPath 和 items 詳解

1. subPath字段的作用

在Linux中,將目錄A掛載到目錄B,則目錄B原有的文件都會(huì)被目錄A下的文件覆蓋撬腾。
那么在k8s中,如何將configmap掛載到容器中某個(gè)目錄的文件中呢恢恼?答案是使用subPath民傻。
subPath可以將configMap和secret作為文件掛載到容器中而不覆蓋掛載目錄下的文件。

vim configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: configmap
  namespace: dev
data:
  info: |
    username:admin
    password:123456
  info2: zhangssssssssssssssssssssssssss
vim 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
vim 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

可以看到厅瞎,因?yàn)閜od1中是將configmap直接掛載到了容器的workspace目錄饰潜,由于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的寫法爽柒,subPath此時(shí)指的就是configMap中的key吴菠,也就是文件名。

image.png
image.png

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     
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市怎燥,隨后出現(xiàn)的幾起案子瘫筐,更是在濱河造成了極大的恐慌,老刑警劉巖铐姚,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件策肝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡隐绵,警方通過(guò)查閱死者的電腦和手機(jī)之众,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)依许,“玉大人棺禾,你說(shuō)我怎么就攤上這事『肥郑” “怎么了帘睦?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵袍患,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我竣付,道長(zhǎng)诡延,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任古胆,我火速辦了婚禮肆良,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逸绎。我一直安慰自己惹恃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布棺牧。 她就那樣靜靜地躺著巫糙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颊乘。 梳的紋絲不亂的頭發(fā)上参淹,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音乏悄,去河邊找鬼浙值。 笑死,一個(gè)胖子當(dāng)著我的面吹牛檩小,可吹牛的內(nèi)容都是我干的开呐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼规求,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼筐付!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起颓哮,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤家妆,失蹤者是張志新(化名)和其女友劉穎鸵荠,沒想到半個(gè)月后冕茅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛹找,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年姨伤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庸疾。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乍楚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出届慈,到底是詐尸還是另有隱情徒溪,我是刑警寧澤忿偷,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站臊泌,受9級(jí)特大地震影響鲤桥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜渠概,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一茶凳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧播揪,春花似錦贮喧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至雇庙,卻和暖如春饱普,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背状共。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工套耕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人峡继。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓冯袍,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親碾牌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子康愤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 幾乎所有的應(yīng)用都需要配置信息,在K8S部署應(yīng)用舶吗,最佳實(shí)踐是將應(yīng)用的配置信息(環(huán)境變量或者配置文件)和程序本身分離征冷,...
    poneding閱讀 304評(píng)論 0 0
  • 應(yīng)用配置的關(guān)鍵在于能夠在多個(gè)環(huán)境中區(qū)分配置選項(xiàng),將配置從應(yīng)用程序源碼中分離誓琼,可頻繁變更配置值检激。如果將pod定義描述...
    眾神開掛閱讀 641評(píng)論 0 3
  • 需求很多時(shí)候在制作Docker鏡像時(shí),對(duì)于有些程序存在個(gè)性化配置時(shí)腹侣,Dockerfile提供的的ADD方式就顯得不...
    魔哈Moha閱讀 25,941評(píng)論 3 6
  • ConfigMap顧名思義叔收,是用于保存配置數(shù)據(jù)的鍵值對(duì),可以用來(lái)保存單個(gè)屬性傲隶,也可以保存配置文件饺律。Secret可以...
    沉淪2014閱讀 30,879評(píng)論 1 8
  • 環(huán)境變量雖然可以用來(lái)對(duì)應(yīng)用程序進(jìn)行配置,但是如果配置項(xiàng)特別多跺株,這種方式很快就會(huì)顯得難以為繼复濒,這種情況下脖卖,我們可以講...
    攀師傅閱讀 312評(píng)論 0 0