在前一章我們學到chart是如何運作的,他能夠將values內的值帶入deployment.yaml內,不過如果需要隨著不同站別切換不同設定,單一個values.yaml是不夠的,而這一章就會來教學如何依照不同環境,切換不同的values
首先我們先建立一個chart:
helm create nginx-demo
並且直接install他
helm install nginx-demo nginx-demo
這時用kubectl get pod
可以看到他只會有一個pod
然後我們建立一個values-dev.yaml
的檔案,其內容如下
replicaCount: 3
再來透過helm upgrade
更新chart
helm upgrade -f values-dev.yaml nginx-demo nginx-demo
修改完之後用kubectl get pod
看一下pod數量,可以看到pod數量變成3。
這樣就可以看出來,透過這種方式,可以在不同環境套用不同設定,修改參數,而沒有指定的參數則會維持values.yaml的原始設定。
加上 -f
這個指令並非只能指定一個,而是可以指定多個values
例如我們再建立一個values-port-dev.yaml
內容如下
service:
type: ClusterIP
port: 8080
然後用下面方式更新helm
helm upgrade -f values-dev.yaml -f values-port-dev.yaml nginx-demo nginx-demo
就可以將其port號改掉,同理也可以套用於image版本或是db密碼等等。
再來配合CI/CD,例如:Drone ,Jenkin之類的工具,和分支策略,就可以做出不同站別,不同設定檔的部署了。
透過這幾章,我們簡單瞭解了Helm,在下一章則會開始介紹不同的工具。