ConfigMap是k8s的配置管理工具,通常用來保存明文的配置資訊,以key-value形式傳遞配置,
一、使用命令創建ConfigMap物件
1.通過--from-literal引數創建
kubectl create configmap mycm1 --from-literal=appid=order-app --from-literal=appsecret=dfdg12342
(1)查看創建結果
kubectl get secret

(2)使用describe命令查看詳情
kubectl describe secret mysecret1

(3)輸出yaml檔案格式查看詳情
kubectl get secret mysecret1 -o yaml

2.通過已有的應用組態檔創建
(1)創建一個應用的組態檔
vi appsettings.json
(2)寫入以下測驗內容
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
(3)使用--from-file引數指定該檔案
kubectl create cm mycm2 --from-file=appsettings.json
--from-file可以使用多次;也可以使用目錄,表示該目錄下所有的組態檔都會創建成cm物件,默認key為檔案名,
(4)查看創建結果

二、使用yaml檔案創建ConfigMap
1.創建yaml檔案
vi cm-my3.yaml
2.撰寫yaml檔案內容
apiVersion: v1
kind: ConfigMap
metadata:
name: mycm3
data:
ordersvc-conf: |+
IP: "192.168.59.110"
Port: 10000
3.執行創建命令
kubectl apply -f cm-my3.yaml
4.查看創建結果

三、使用ConfigMap物件
1.通過環境變數的形式
liunx自帶的命令env,用來查看當前系統的環境變數,我們可以把cm物件設定到環境變數上來查看,

(1)新建pod物件的yaml檔案
vi mycm1-env.yaml
(2)撰寫yaml檔案內容
apiVersion: v1
kind: Pod
metadata:
name: pod-test-mycm1
spec:
containers:
- name: pod-test-mycm1-bb
image: busybox
command: ["/bin/sh", "-c", "env"]
# 從cm物件中獲取對應key的值賦值給環境變數
env:
- name: APPID
valueFrom:
configMapKeyRef:
name: mycm1
key: appid
- name: APPSECRET
valueFrom:
configMapKeyRef:
name: mycm1
key: appsecret
(3)創建pod
kubectl create -f mycm1-env.yaml
(4)查看pod,在默認名稱空間下

通過查看此pod的日志,可以看到輸出的環境變數資訊是mycm1物件的資訊

2.通過vloume掛載方式
(1)新建pod物件的yaml檔案
vi mycm2-volume.yaml
(2)撰寫yaml檔案內容
apiVersion: v1
kind: Pod
metadata:
name: pod-test-mycm2
spec:
containers:
- name: pod-test-mycm2-bb
image: busybox
command: ["/bin/sh", "-c", "cat /etc/cms/my-appsettings.json"]
volumeMounts:
- name: cms
mountPath: /etc/cms
volumes:
- name: cms
configMap:
name: mycm2
items:
# 把cm物件掛載到檔案名
- key: appsettings.json
path: my-appsettings.json
(3)創建pod
kubectl create -f mycm2-volume.yaml
(4)查看pod,在默認名稱空間下

通過查看此pod的日志,可以看到輸出的資訊是mycm2物件中的資料

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/467028.html
標籤:其他
