Kubernetes 配置Pod和容器(十五) 通過環(huán)境變量公開Pod信息到容器

這個章節(jié)展示了如何使用環(huán)境變量公開pod的信息到它自己運(yùn)行的容器里面。環(huán)境變量可以公開Pod字段和容器字段紊册。

有兩種方式用來公開Pod和容器字段給運(yùn)行的容器:環(huán)境變量和DownwardAPIVolumeFiles液茎。

使用Pod字段作為環(huán)境變量的值

在本次實(shí)驗(yàn)票彪,創(chuàng)建包含一個容器的Pod援所。下面是這個Pod的配置文件:

apiVersion: v1
kind: Pod
metadata:
  name: dapi-envars-fieldref
spec:
  containers:
    - name: test-container
      image: gcr.io/google_containers/busybox
      command: [ "sh", "-c"]
      args:
      - while true; do
          echo -en '\n';
          printenv MY_NODE_NAME MY_POD_NAME MY_POD_NAMESPACE;
          printenv MY_POD_IP MY_POD_SERVICE_ACCOUNT;
          sleep 10;
        done;
      env:
        - name: MY_NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: MY_POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: MY_POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: MY_POD_SERVICE_ACCOUNT
          valueFrom:
            fieldRef:
              fieldPath: spec.serviceAccountName
  restartPolicy: Never

在這個配置文件揭朝,可以看到五個環(huán)境變量队贱。env字段是個數(shù)組。數(shù)組里面的第一個元素指定了MY_NODE_NAME環(huán)境變量潭袱,它的值是從Pod的spec.nodeName里面獲取的柱嫌。類似的其他的環(huán)境變量獲取pod的字段名稱。

注意:這些例子里面的字段是pod的字段。不是運(yùn)行在pod里面的容器的字段。

創(chuàng)建pod:

kubectl create -f test.yaml

驗(yàn)證運(yùn)行在pod里面的容器:

kubectl get pods

查看容器的日志:

kubectl logs dapi-envars-fieldref

輸出展示了選擇的環(huán)境變量的值:

minikube
dapi-envars-fieldref
default
172.17.0.4
default

為何在日志里面是這些值摆舟,可以看配置文件的command和args。當(dāng)容器啟動的時候嘉抓,把這個五個環(huán)境變量的值寫入的標(biāo)準(zhǔn)輸出里面。每十秒鐘重復(fù)一次晕窑。

下一步抑片,通過shell進(jìn)入Pod運(yùn)行的容器里面:

kubectl exec -it dapi-envars-fieldref -- sh

在shell里面,查看環(huán)境變量:

/# printenv

輸出展示了確定已經(jīng)把pod字段的值分配給環(huán)境變量:

MY_POD_SERVICE_ACCOUNT=default
...
MY_POD_NAMESPACE=default
MY_POD_IP=172.17.0.4
...
MY_NODE_NAME=minikube
...
MY_POD_NAME=dapi-envars-fieldref

使用容器字段作為環(huán)境變量的值

在上面的實(shí)驗(yàn)杨赤,使用pod字段作為環(huán)境變量的值蓝丙。在下一個實(shí)驗(yàn),可以使用容器字段作為環(huán)境變量的值望拖。下面是Pod的配置文件:

apiVersion: v1
kind: Pod
metadata:
  name: dapi-envars-resourcefieldref
spec:
  containers:
    - name: test-container
      image: gcr.io/google_containers/busybox:1.24
      command: [ "sh", "-c"]
      args:
      - while true; do
          echo -en '\n';
          printenv MY_CPU_REQUEST MY_CPU_LIMIT;
          printenv MY_MEM_REQUEST MY_MEM_LIMIT;
          sleep 10;
        done;
      resources:
        requests:
          memory: "32Mi"
          cpu: "125m"
        limits:
          memory: "64Mi"
          cpu: "250m"
      env:
        - name: MY_CPU_REQUEST
          valueFrom:
            resourceFieldRef:
              containerName: test-container
              resource: requests.cpu
        - name: MY_CPU_LIMIT
          valueFrom:
            resourceFieldRef:
              containerName: test-container
              resource: limits.cpu
        - name: MY_MEM_REQUEST
          valueFrom:
            resourceFieldRef:
              containerName: test-container
              resource: requests.memory
        - name: MY_MEM_LIMIT
          valueFrom:
            resourceFieldRef:
              containerName: test-container
              resource: limits.memory
  restartPolicy: Never

在配置文件里面,可以看到四個環(huán)境變量挫鸽。env字段是一個數(shù)組说敏。數(shù)組的第一個元素指定了MY_CPU_REQUEST環(huán)境變量的值通過名字為test-container容器的request.cpu字段獲取。類似的其他的環(huán)境變量通過他們對應(yīng)的容器字段獲取相應(yīng)的值丢郊。

創(chuàng)建Pod:

kubectl create -f test.yaml

驗(yàn)證Pod里面的容器已經(jīng)運(yùn)行:

kubectl get pods

查看容器日志:

kubectl logs dapi-envars-resourcefieldref

輸出展示了選擇的環(huán)境變量的值:

1
1
33554432
67108864
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盔沫,一起剝皮案震驚了整個濱河市医咨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌架诞,老刑警劉巖拟淮,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谴忧,居然都是意外死亡很泊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門沾谓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來委造,“玉大人,你說我怎么就攤上這事均驶』枵祝” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵妇穴,是天一觀的道長爬虱。 經(jīng)常有香客問我,道長腾它,這世上最難降的妖魔是什么跑筝? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮携狭,結(jié)果婚禮上继蜡,老公的妹妹穿的比我還像新娘。我一直安慰自己逛腿,他們只是感情好稀并,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著单默,像睡著了一般碘举。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上搁廓,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天引颈,我揣著相機(jī)與錄音,去河邊找鬼境蜕。 笑死蝙场,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粱年。 我是一名探鬼主播售滤,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了完箩?” 一聲冷哼從身側(cè)響起赐俗,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎弊知,沒想到半個月后阻逮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秩彤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年叔扼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呐舔。...
    茶點(diǎn)故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡币励,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出珊拼,到底是詐尸還是另有隱情食呻,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布澎现,位于F島的核電站仅胞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏剑辫。R本人自食惡果不足惜干旧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望妹蔽。 院中可真熱鬧椎眯,春花似錦、人聲如沸胳岂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乳丰。三九已至掌测,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間产园,已是汗流浹背汞斧。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留什燕,地道東北人粘勒。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像屎即,于是被迫代替她去往敵國和親仲义。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評論 2 348

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

  • 本章節(jié)展示了Pod如何使用DownwardAPIVolumeFile公開信息到自己運(yùn)行的容器。DownwardAP...
    YiQinGuo閱讀 1,759評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理埃撵,服務(wù)發(fā)現(xiàn),斷路器虽另,智...
    卡卡羅2017閱讀 134,629評論 18 139
  • 很多應(yīng)用程序需要一些配置通過組合的配置文件暂刘,命令行參數(shù)和環(huán)境變量。這些配置應(yīng)該與鏡像內(nèi)容分離以保持容器化應(yīng)用程序的...
    YiQinGuo閱讀 13,683評論 0 3
  • 從三月份找實(shí)習(xí)到現(xiàn)在捂刺,面了一些公司谣拣,掛了不少,但最終還是拿到小米族展、百度森缠、阿里、京東仪缸、新浪贵涵、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,209評論 11 349
  • ? 小時候在大人的聊天中恰画,最長聽到的一句話便是“小孩子不懂的”宾茂。放佛孩子是個沒有思想的寵物,任何傷害隨著成長都會被...
    芬克閱讀 1,345評論 2 10