k8s中configmap的使用方法

2022-05-08 11:21:11 字數 2655 閱讀 5432

configmaps允許您將配置構件與映像內容解耦,以保持容器化應用程式的可移植性。本文展示如何建立configmap,修改configmap以及如何把configmap應用於pod.

1.configmap的yaml檔案 myconfigmap.yaml,該檔案包含兩個configmap,以第乙個configmap為例說明。special-config是該configmap的名稱,default是該configmap所屬的網域名稱。該configmap僅包含乙個資料special.how,值是very.內容如下:

apiversion: v1

kind: configmap

metadata:

name: special-config

namespace: default

data:

special.how: very

---apiversion: v1

kind: configmap

metadata:

name: env-config

namespace: default

data:

log_level: info

2.建立configmap,以下命令都可以

kubectl create -f myconfigmap.yaml

kubectl create configmap gameconfig --from-file=myconfigmap.yaml -n test

第一行命令完全按照yaml檔案中的設定來可以同時建立多個configmap;而第二條命令是gameconfig是新建立的configmap的名稱,只能建立出乙個configmap,其中包含多個數值,test是namespace. 正常會輸出

configmap/gameconfig created
如果報錯error from server (notfound): namespaces "test" not found則需要先建立該網域名稱。

3.檢視configmap,假設我們之前用kubectl create -f myconfigmap.yaml建立了configmap,那麼檢視結果如下

[root@k8s-master sj]# kubectl get configmap --all-namespaces

namespace name data age

default env-config 1 2s

default special-config 1 2s

[root@k8s-master sj]# kubectl describe configmap special-config

name: special-config

namespace: default

labels: annotations: data

====

special.how:

----

very

events:

1.定義乙個configmap數值,可以用如上的方法定義,也可以使用如下的命令:

kubectl create configmap special-config --from-literal=special.how=very
2.在pod specification中,環境變數special_level_key的值由configmap的special.how來定義,同樣的也可以使用多個configmap中多個值來定義多個環境變數。pod yaml檔案 configmap-pod.yaml 如下所示:

apiversion: v1

kind: pod

metadata:

name: dapi-test-pod

spec:

containers:

- name: test-container

image: k8s.gcr.io/busybox

command: [ "/bin/sh", "-c", "env" ]

env:

- name: special_level_key

valuefrom:

configmapkeyref:

name: special-config

key: special.how

- name: log_level

valuefrom:

configmapkeyref:

name: env-config

key: log_level

restartpolicy: never

然後建立pod:

kubectl create -f configmap-pod.yaml

現在,pod的啟動輸出了它所有的環境變數其中包括變數special_level_key=verylog_level=info

K8s部署prometheus監控K8s細節

prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...

K8S中的資源

k8s中所有的內容都抽象為資源,資源例項化之後,叫做物件 pod replicaset deployment,statefulset,daemonset,job,cronjob replicationcontroller 在v.11版本被廢棄 service,ingress.volume 儲存卷 c...

k8s 多租戶 k8s 基礎介紹

備註 1 每乙個pod裡執行著乙個特殊的容器 pause容器,其他容器都是業務容器,這些業務容器共享pause容器的網路棧和volume 邏輯卷 掛載卷。因此他們之間的通訊和資料交換更為高效。2 k8s設計了pod物件,將每個服務程序包裝到相應的pod中,使其成為pod中執行的乙個容器 contai...