对于helm部署服务

在Kubernetes上进行容器化部署时,应用helm能够简化操作,以部署Jenkins为例,只须要以下命令即可实现部署:

helm install --namespace helm-jenkins --name my-jenkins stable/jenkins

留神:对于helm部署的体验Jenkins的详情,请参考《》

面临的问题

上述命令部署的Jenkins服务,参数都是默认的,例如CPU和内存,如果您已装了metrics-server,用命令<font color="blue">kubectl top pod --all-namespaces</font>能够看到Jenkins所占内存仅有515兆,如下图:

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

因而,helm部署的利用,有时默认参数是不能满足咱们需要的,有必要批改;

环境信息

本次操作在以下环境进行:

  1. kubernetes:1.15
  2. jenkins:2.190.2

第一种批改形式:kubectl edit

如果利用曾经通过helm部署好了,用命令<font color="blue">kubectl edit</font>来批改最间接无效:

  1. 执行命令<font color="blue">kubectl edit deployment my-jenkins -n helm-jenkins</font>,即可在线编辑名为my-jenkins的deployment,操作方法和vi编辑文本文件一样,如下图所示,红框中是本次新增的内容,在java利用的启动参数中指定内存信息:

  1. 编辑完后,保留退出会立刻失效,如下图,可见旧pod正在被销毁,新pod启动中:

  1. 等pod创立和启动胜利后再次查看,如下图,新pod内存果然减少了:

第二种批改形式:改helm的配置文件

如果服务还没部署,可改用以下步骤部署:

  1. 执行命令<font color="blue">helm fetch stable/jenkins</font>,执行结束后当前目录新增名为<font color="blue">jenkins-0.13.5.tgz</font>的文件;
  2. 解压<font color="blue">jenkins-0.13.5.tgz</font>文件:
tar -zxvf jenkins-0.13.5.tgz
  1. 解压后失去名为jenkins的文件夹,进去发现如下内容:
[root@node1 jenkins]# lsChart.yaml  OWNERS  README.md  templates  values.yaml
  1. 关上<font color="blue>"jenkins-0.13.5.tgz</font>文件,如下图,外面有丰盛的配置项,留神红框地位是咱们要调整的:

  1. 批改上图红框中的值,这里改为1024,如下图所示,留神要将最右边的"#"删除:

  1. 在values.yaml文件所在目录执行以下命令,开始部署Jenkins:
helm install --name-template my-jenkins -f values.yaml . --namespace helm-jenkins
  1. 部署实现后,执行命令<font color="blue">kubectl edit deployment my-jenkins -n helm-jenkins</font>查看以后deployment状态,如下图红框所示,Jenkins服务的内存参数和前一种办法设置的成果是一样的:

  1. 再看看pod的理论内存状况,如下图,配置已失效:


以上就是helm部署的服务的设置形式,心愿能给您提供参考。

欢送关注我的公众号:程序员欣宸

https://github.com/zq2599/blog_demos