K8s configMap原理介紹

2022-04-08 15:53:32 字數 3302 閱讀 4189

給容器內應用程式傳遞引數的實現方式:

1. 將配置檔案直接打包到映象中,但這種方式不推薦使用,因為修改配置不夠靈活。

2. 通過定義pod清單時,指定自定義命令列引數,即設定 args:["命令引數"],這種也

可在啟動pod時,傳參來修改pod的應用程式的配置檔案.

3. 使用環境變數來給pod中應用傳參修改配置

但要使用此種方式,必須符合以下前提之一:

1) pod中的應用程式必須是cloud native的應用程式,即支援直接通過環境變數來載入配置資訊。

2) 通過定義entrypoint指令碼的預處理變數來修改pod中應用程式的配置檔案,這些entrypoint指令碼

可以使用set,sed,grep等工具來實現修改,但也要確保容器中有這些工具。

4.儲存卷: 我們可將配置資訊直接放到儲存卷中,如pv中,pod啟動時,自動掛載儲存捲到配置檔案目錄,

來實現給pod中應用提供不同的配置。

5. configmap 或 secret

configmap的主要作用:#這是定義了乙個key叫www.conf,其值為www.conf的內容

kubectl create configmap nginx-www --from-file=./www.conf 

kubectl get cm nginx-www -o yaml

kubectl describe cm nginx-www

#給pod中的容器傳遞configmap定義的變數的示例:

#應用這個使用configmap的pod

#通過共享卷的方式來掛載configmap:

mountpath: /etc/nginx/config.d/#掛載點不存在,pod會自動建立.

readonly:

true

#不能讓容器修改配置的內容。

volumes:

-name: nginxconf #定義儲存卷的名字為nginxconf

configmap:

name: nginx-config #要掛載nginx-config這個configmap

generic: 通用型別,通常用於儲存密碼資料。

tls:此型別僅用於儲存私鑰和證書。

docker-registry: 若要儲存docker倉庫的認證資訊的話,就必須使用此種型別來建立。

#建立乙個mysql-root-password的secret:

kubectl create secret generic mysql-root-password [email protected]*9

注: 這就定義了乙個generic型別的secret, 名字是mysql-root-password, key是password,值是[email protected]*9

kubectl get secret

kubectl describe secret mysql-root-password

kubectl get secret mysql-root-password -o yaml    #可看到password這個key的值是加密的.

#但secret的加密是一種偽加密,它僅僅是將資料做了base64的編碼.

echopassword這個key的值| base64 -d    #-d:是解碼, 這樣就可以看到base64加碼後的明文密碼了。

#建立乙個引用secret的pod清單:

-name: mysql_root_password #它是pod啟動成功後,pod中容器的環境變數名.

valuefrom:

secretkeyref:

name: mysql-root-password #這是secret的物件名

key: password #它是secret中的key名

k8s排程 原理 K8s排程原理和Pod生命週期

1 k8s排程原理 pod只存在某乙個物理節點上,可以執行多個container 2 pod的生命週期 暫停pod,可以暫停deployment kubectl get depolyment kubectl scale replicas 0 deployment 刪除pod。刪除之後,狀態變成suc...

K8s 原理架構介紹 一

kubernetes是當今最流行的開源容器管理平台,它就是大名鼎鼎的google borg的開源版本。google在2014年推出了kubernetes,本文發布時最新的版本是1.11。kubernetes源於希臘語,意為舵手,k8s是乙個簡稱,因為首尾字母中間正好有8個字母。基於容器技術,kube...

K8s 原理架構介紹 一

kubernetes是當今最流行的開源容器管理平台,它就是大名鼎鼎的google borg的開源版本。google在2014年推出了kubernetes,本文發布時最新的版本是1.11。kubernetes源於希臘語,意為舵手,k8s是乙個簡稱,因為首尾字母中間正好有8個字母。基於容器技術,kube...