給容器內應用程式傳遞引數的實現方式:
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...