Kubernetes CKA課程筆記 56
簡單考量到一般後端應用程式Pod
要連接到另一個DB Service元件直到背後的DB Pod
在DB資訊在安全考量下,應用程式內並不留存DB的資訊如下:
所以延伸到K8s環境下,最好的建立與提供這些外部設定檔方式是?
就要使用到以下兩個元件
而要讓Pod內的Container內的應用程式(my-app)
取得儲存在ConfigMap & Secret的資料,有兩招:
- 使用Environment Variables(環境變數)當個別值引入
- 使用Volumes當Configuration File(設定檔)引入
這篇筆記就寫完1.Environment Variables的部分如下
ConfigMap & Secret — Environment Variables:
接著範例將講解如下步驟:
- 建立ConfigMap元件
- 建立Secret元件
- 將上述儲存的資料透過Environment Variables(環境變數)傳給Pod
1.建立ConfigMap元件:
下面將以目錄來存放ConfigMap & Secret yaml檔
所以首先建立一個目錄(external-config),並進到裡面
接著開始建立ConfigMap的yaml檔:
接著我直接把講師的結果貼來,直接圖上解說如下:
2.建立Secret元件:
開始建立Secret元件的yaml檔:
內容需要設定這個Secret的類別(type),可以先查找官網找到:
先寫出以下內容:
也就是我們隨意定義了key為username與password
但是值則需要透過base64加密後才能放入,所以在起另一個putty
執行以下指令拿到要放的值的base64加密後結果:
echo -n "{值}"|base64
其中-n表示捨去換行符號!
隨意定個帳密:
完成如下儲存:
接著在當前目錄只有剛剛建立的ConfigMap與Secret的yaml檔情況下
執行apply指令到點,可以將該目錄所有Configuration yaml檔建出對應元件:
kubectl apply -f .
3.將上述儲存的資料透過Environment Variables(環境變數)傳給Pod:
開始建立deployment元件的yaml檔:
並先定義基本的Deployment元件內容如下:
再來就是填入引用ConfigMap與Secret元件裡面的值,並使用
同理也把密碼引用,當然另外還要從ConfigMap的db_host這個key寫上去:
記得這些設定檔有些名稱,大小寫,yaml階層等等要求基本不可能背!!
所以比較重要的部分是要知道有這些元件使用方式
至於如何寫出對應Configuration File,當然是知道關鍵字去官網找範例就好!
不用背!
此時該container內就能有這個環境變數了,再來當然是使用看看:
嘗試讓該container內印出這些環境變數訊息出來,最終完成如下:
接著當然就是apply建出來
但是記得:
有引用ConfigMap或Secret的Deployment的建立
必定是要在ConfigMap或Secret建立之後才建!
不然就等著ERROR...!
所以建完要在20秒內拿到log,整個確認動作如下:
這邊字打錯....:
重來:
這邊課結束先移除這個deployment元件,不然Pod會一直重建: