Kubernetes — Helm額外筆記1
回顧36篇筆記做得下圖:
簡單快速的練習,首先在起始路徑上建立charts目錄來存放helm chart
並且著手建立my-nginx這個chart的準備,所以再建立該名稱目錄:
接著建立my-nginx這個helm chart的描述檔:Chart.yaml
填入以下描述資訊後儲存:
然後在這個chart內在建立templates目錄:
接著透過kubectl 的dry-run指令在另一個視窗中建立deployment
的基本Configuration file,放進剛剛建立的templates目錄下,執行:
kubectl create deploy my-nginx --image nginx --dry-run=client -o yaml > charts/my-nginx/templates/deployment.yaml
接著透過上述我們建立的紅框檔案,用Helm指令正式成立Helm chart:
先在另一視窗監看deployment物件,執行:
watch -x kubectl get deploy
在於上面視窗/home/ubuntu/charts/my-nginx目錄下執行:
helm install {給這個chart的名稱,不一定要my-nginx} {chart目錄位置可以是個點}
上述最後的"點"代表使用當下目錄的檔案建立:
官網還有介紹如果有做好的values.yaml也可以用-f代入,或單一值變更用set:
接著確認helm chart執行:
helm list
在如上已經建立完chart名為mynginx情況下
我想在該chart的templates內再加入service configuration file:
先確認內容,執行暴露deployment指令:
kubectl expose deploy {剛剛建立的deployment名稱} --port 80 --dry-run=client -o yaml
上述Service內容沒問題,所以重複執行上述指令
但是導入到剛剛chart的templates目錄內:
並且改一下剛剛描述檔(Chart.yaml)內的版本描述:
接著先用另一視窗改監看service物件:
目前有這幾天課程建立的物件:
回到原視窗執行helm更新指令:
helm upgrade {Chart名,我們是mynginx} ../my-nginx
再次執行helm物件確認指令看到:
然後還能透過helm做退版,執行:
helm rollback {chart名} {指定的版本數字}
還可以往前退到新版2:
但是再次確認helm物件會看到版本狀態變成:
接著嘗試移除整個chart,執行(新版是用uninstall指令):
helm uninstall {chart name}
接著練習注入values的方式,也就是要撰寫values.yaml檔
在/home/ubuntu/charts/my-nginx目錄下建立values.yaml檔:
嘗試改改Deployment內分裂的Pod數量,也就是replicaCount
所以現在總共有:
接著要讓值可以注入到deployment.yaml內,所以要改寫templates下的該檔
同時再改改Chart.yaml描述檔!
另一視窗改監視pod:
再次執行安裝指令:
helm install {給這個chart的名稱,不一定要my-nginx} {chart目錄位置可以是個點}
再移除掉chart:
我想快速代入replicaCount值改為2,參考doc範例可以這麼執行:
helm install myngix {chart目錄} --set replicaCount=2
再移除:
並且helm也提供指令可以直接觀看values.yaml內容,執行:
helm show values {chart目錄}
其實真的點也可以...
嘗試在/tmp下也建立不同名稱的values.yaml檔來使用:
改寫一下其內容:
透過不同位置的values.yaml檔來install chart執行:
helm install myngix {chart目錄} -f {另外的values.yaml檔位置}
執行後:
接著隨便玩玩直接upgrade:
接著練習values的巢狀結構:
直接改寫最早的values.yaml檔
所以同理要改寫service.yaml檔:
順便改改描述檔:
另一視窗重新監視service,執行前:
執行後:
同理也可以用set:
最後自建部分先移除:
最後其實也可以透過helm的create指令來做建立chart範本空殼的動作,執行:
我先回到上一個放各個chart的路徑:
執行:
helm create {chart名稱}
往裡面看已經很多目錄都建好好的:
雖說這樣也是種建立方式,但是前面自建則會更乾淨一點
其他有用的參考可見官方的:The Chart Best Practices Guide
但是該影片指令有很多都過期了,跟我上面的不太一樣
但是概念都差不多!