k8s pod MySQL环境变量,如何使用Kubernetes的configmap通过环境变量注入到pod里
在Kubernetes官網(wǎng)里,有這樣一篇文章,提到了Kubernetes里的一個(gè)最佳實(shí)踐就是把應(yīng)用代碼同配置信息分開,一種方式就是使用Kubernetes 1.2里引入的configmap概念。
configmap實(shí)際上就是一系列鍵值對(duì),存儲(chǔ)于etcd里。etcd的官網(wǎng)有這樣一句話:
etcd is a distributed key-value store designed to reliably and quickly preserve and provide access to critical data.
etcd是一個(gè)高性能的分布式鍵值對(duì)存儲(chǔ)庫,用于存儲(chǔ)和訪問關(guān)鍵數(shù)據(jù)。
使用下面的命令行創(chuàng)建一個(gè)Kubernetes config map:
kubectl create configmap test-config --from-literal=test.type=unit --from-literal=test.exec=always
創(chuàng)建一個(gè)名為test-config的鍵值對(duì),key為test.type,值為unit,key為test.exec, 值為always。
下面我打算創(chuàng)建一個(gè)pod,消費(fèi)這個(gè)名為test-config的configmap。
創(chuàng)建一個(gè)內(nèi)容如下的yaml文件:
apiVersion: v1
kind: Pod
metadata:
name: test-configmap
spec:
containers:
- name: test-container
image: alpine:3.8
command: [ "/bin/sh", "-c", "env" ]
env:
- name: TEST_TYPE
valueFrom:
configMapKeyRef:
name: test-config
key: test.type
- name: TEST_EXEC
valueFrom:
configMapKeyRef:
name: test-config
key: test.exec
restartPolicy: Never
這個(gè)yaml文件定義的pod基于docker鏡像alpine,執(zhí)行shell命令/bin/sh -c env查看環(huán)境變量。
在env區(qū)域,我給該pod注入一個(gè)名為TEST_TYPE的環(huán)境變量,值從configMap鍵值對(duì)的鍵名稱為test.type的值中取。
kubectl create -f 創(chuàng)建這個(gè)pod:
使用命令kubectl logs test-configmap查看這個(gè)pod運(yùn)行生成的日志,發(fā)現(xiàn)輸出的環(huán)境變量列表中,出現(xiàn)了TEST_TYPE=unit,這個(gè)TEST_TYPE是我在yaml文件里注入的環(huán)境變量名稱,而unit就來自configmap里test-config的值unit。
要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的k8s pod MySQL环境变量,如何使用Kubernetes的configmap通过环境变量注入到pod里的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: floquet端口x极化入射波_hfss
- 下一篇: 【译】索引进阶(十一):SQL SERV