如何使用Kubernetes的configmap通過環境變數注入到pod裡
在Kubernetes官網裡,有這樣一篇文章,提到了Kubernetes裡的一個最佳實踐就是把應用程式碼同配置資訊分開,一種方式就是使用Kubernetes 1.2裡引入的configmap概念。
https://kubernetes.io/blog/2016/04/configuration-management-with-containers/
configmap實際上就是一系列鍵值對,儲存於etcd裡。etcd的官網有這樣一句話:
etcd is a distributed key-value store designed to reliably and quickly preserve and provide access to critical data.
https://github.com/etcd-io/etcd/blob/master/Documentation/docs.md
etcd是一個高效能的分散式鍵值對儲存庫,用於儲存和訪問關鍵資料。
使用下面的命令列建立一個Kubernetes config map:
kubectl create configmap test-config --from-literal=test.type=unit --from-literal=test.exec=always
建立一個名為test-config的鍵值對,key為test.type,值為unit,key為test.exec, 值為always。
下面我打算建立一個pod,消費這個名為test-config的configmap。
建立一個內容如下的yaml檔案:
apiVersion: v1kind: Podmetadata:name: test-configmapspec:containers:- name: test-containerimage: alpine:3.8command: [ "/bin/sh", "-c", "env" ]env:- name: TEST_TYPEvalueFrom:configMapKeyRef:name: test-configkey: test.type- name: TEST_EXECvalueFrom:configMapKeyRef:name: test-configkey: test.execrestartPolicy: Never
這個yaml檔案定義的pod基於docker映象alpine,執行shell命令/bin/sh -c env檢視環境變數。
在env區域,我給該pod注入一個名為TEST_TYPE的環境變數,值從configMap鍵值對的鍵名稱為test.type的值中取。
kubectl create -f 建立這個pod:
使用命令kubectl logs test-configmap檢視這個pod執行生成的日誌,發現輸出的環境變數列表中,出現了TEST_TYPE=unit,這個TEST_TYPE是我在yaml檔案裡注入的環境變數名稱,而unit就來自configmap裡test-config的值unit。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2220820/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- kubernetes容器編排之定義環境變數以及通過downwardapi把pod資訊作為環境變數傳入容器內變數API
- 使用 SAP Cloud SDK 開發應用時,如何通過環境變數的配置避免硬編碼Cloud變數
- Mac 修改Java環境變數 pod brew等其他不能用MacJava變數
- win10怎麼配置環境變數_win10的環境變數配置在哪裡Win10變數
- #環境變數 相關的環境變數請複製過來,可能會和變數
- 如何檢視Docker容器環境變數,如何向容器傳遞環境變數Docker變數
- postman 變數 環境 過濾等Postman變數
- oracle裡面的幾個環境變數表Oracle變數
- 精讀《如何在 nodejs 使用環境變數》NodeJS變數
- 什麼是環境變數?Python中如何設定環境變數?變數Python
- win10 如何讓環境變數生效_windows10如何設定環境變數Win10變數Windows
- 如何在Java程式碼中使用SAP雲平臺CloudFoundry環境的環境變數JavaCloud變數
- Laravel 和 Lumen 中通過環境變數配置對應的 env 檔案Laravel變數
- 環境變數變數
- 如何管理你的 Linux 環境變數Linux變數
- Java新手_如何配置jdk的環境變數JavaJDK變數
- OpenMP 環境變數使用總結變數
- ORACLE TWO_TASK環境變數的使用Oracle變數
- awk中使用shell的環境變數(轉)變數
- Kubernetes使用者指南(三)–在生產環境中使用Pod來工作、管理部署
- kubernetes實踐之三十五:Pod配置管理ConfigMap
- mac如何配置python環境變數MacPython變數
- win10如何配置環境變數?Win10變數
- JDK 1.6環境變數如何設定?JDK變數
- Linux 新增環境變數和刪除環境變數Linux變數
- 簡述SHELL全域性環境變數與局變環境變數變數
- 配置jdk環境變數win10教程_win10jdk環境變數如何配置JDK變數Win10
- 如何為你的App配置多環境變數APP變數
- Java 環境變數Java變數
- jdk環境變數JDK變數
- DOS環境變數變數
- env 環境變數變數
- 環境變數path變數
- Java環境變數Java變數
- ORACLE 環境變數Oracle變數
- postman環境變數Postman變數
- 配置環境變數變數
- 通過一個實際例子理解Kubernetes裡pod的自動scale - 水平自動伸縮