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=very
和log_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...