关于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兆,以下图:

Jenkins服务Java应用,若是内存不足会致使频繁的垃圾回收,下图是经过docker exec在Jenkin容器中执行jstat命令看到的JVM情况,可见YGC频繁,还有FGC出现:

所以,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应用的启动参数中指定内存信息:

- 编辑完后,保存退出会当即生效,以下图,可见旧pod正在被销毁,新pod启动中:

- 等pod建立和启动成功后再次查看,以下图,新pod内存果真增长了:

第二种修改方式:改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文件,以下图,里面有丰富的配置项,注意红框位置是咱们要调整的:

- 修改上图红框中的值,这里改成1024,以下图所示,注意要将最左边的"#"删除:

- 在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服务的内存参数和前一种方法设置的效果是同样的:

- 再看看pod的实际内存状况,以下图,配置已生效:

以上就是helm部署的服务的设置方式,但愿能给您提供参考。
欢迎关注个人公众号:程序员欣宸
https://github.com/zq2599/blog_demosshell