關於helm部署服務
在Kubernetes上進行容器化部署時,使用helm能夠簡化操做,以部署Jenkins爲例,只須要如下命令便可完成部署:java
helm install --namespace helm-jenkins --name my-jenkins stable/jenkins
注意:關於helm部署的體驗Jenkins的詳情,請參考《》node
面臨的問題
上述命令部署的Jenkins服務,參數都是默認的,例如CPU和內存,若是您已裝了metrics-server,用命令kubectl top pod --all-namespaces能夠看到Jenkins所佔內存僅有515兆,以下圖:
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
Jenkins服務Java應用,若是內存不足會致使頻繁的垃圾回收,下圖是經過docker exec在Jenkin容器中執行jstat命令看到的JVM情況,可見YGC頻繁,還有FGC出現:
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
所以,helm部署的應用,有時默認參數是不能知足咱們需求的,有必要修改;git
環境信息
本次操做在如下環境進行:程序員
- kubernetes:1.15
- jenkins:2.190.2
第一種修改方式:kubectl edit
若是應用已經經過helm部署好了,用命令kubectl edit來修改最直接有效:github
- 執行命令kubectl edit deployment my-jenkins -n helm-jenkins,便可在線編輯名爲my-jenkins的deployment,操做方法和vi編輯文本文件同樣,以下圖所示,紅框中是本次新增的內容,在java應用的啓動參數中指定內存信息:
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
- 編輯完後,保存退出會當即生效,以下圖,可見舊pod正在被銷燬,新pod啓動中:
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
- 等pod建立和啓動成功後再次查看,以下圖,新pod內存果真增長了:
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
第二種修改方式:改helm的配置文件
若是服務還沒部署,可改用如下步驟部署:docker
- 執行命令helm fetch stable/jenkins,執行完畢後當前目錄新增名爲jenkins-0.13.5.tgz的文件;
- 解壓jenkins-0.13.5.tgz文件:
tar -zxvf jenkins-0.13.5.tgz
- 解壓後獲得名爲jenkins的文件夾,進去發現以下內容:
[root@node1 jenkins]# ls
Chart.yaml OWNERS README.md templates values.yaml
- 打開<font color="blue>"jenkins-0.13.5.tgz文件,以下圖,裏面有豐富的配置項,注意紅框位置是咱們要調整的:
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
- 修改上圖紅框中的值,這裏改成1024,以下圖所示,注意要將最左邊的"#"刪除:
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
- 在values.yaml文件所在目錄執行如下命令,開始部署Jenkins:
helm install --name-template my-jenkins -f values.yaml . --namespace helm-jenkins
- 部署完成後,執行命令kubectl edit deployment my-jenkins -n helm-jenkins查看當前deployment狀態,以下圖紅框所示,Jenkins服務的內存參數和前一種方法設置的效果是同樣的:
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
- 再看看pod的實際內存狀況,以下圖,配置已生效:
![在這裏插入圖片描述](http://static.javashuo.com/static/loading.gif)
以上就是helm部署的服務的設置方式,但願能給您提供參考。
歡迎關注個人公衆號:程序員欣宸
https://github.com/zq2599/blog_demosshell