前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Helm部署的服务如何修改配置

Helm部署的服务如何修改配置

作者头像
程序员欣宸
发布2020-03-25 14:36:04
3.4K0
发布2020-03-25 14:36:04
举报
文章被收录于专栏:实战docker实战docker

关于helm部署服务

在Kubernetes上进行容器化部署时,使用helm可以简化操作,以部署Jenkins为例,只需要以下命令即可完成部署:

代码语言:javascript
复制
helm install --namespace helm-jenkins --name my-jenkins stable/jenkins

注:关于helm部署的体验Jenkins的详情,请参考《Helm部署和体验jenkins》

面临的问题

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

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

因此,helm部署的应用,有时默认参数不能满足我们的需求,有必要修改;

环境信息

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

  1. kubernetes:1.15
  2. jenkins:2.190.2
  3. helm版本:2.16.1

第一种修改方式:kubectl edit

如果应用已经通过helm部署好了,用命令kubectl edit来修改最直接有效:

  1. 执行命令kubectl edit deployment my-jenkins -n helm-jenkins,即可在线编辑名为my-jenkins的deployment,操作方法和vi编辑文本文件一样,如下图所示,红框中是本次新增的内容,在java应用的启动参数中指定内存信息:
  1. 编辑完后,保存退出会立即生效,如下图,可见旧pod正在被销毁,新pod启动中:
  1. 等pod创建和启动成功后再次查看,如下图,新pod内存果然增加了:

第二种修改方式:改helm的配置文件

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

  1. 执行命令helm fetch stable/jenkins,该命令会将jenkins服务相关的配置全部下载,即名为jenkins-0.13.5.tgz的文件;
  2. 解压jenkins-0.13.5.tgz文件;
  3. 解压后得到名为jenkins的文件夹,进去发现如下内容:
代码语言:javascript
复制
[root@node1 jenkins]# ls
Chart.yaml OWNERS README.md templates values.yaml
  1. 打开values.yaml文件,如下图,里面有丰富的配置项,注意红框位置是我们要调整的:
  1. 修改上图红框中的值,这里改为1024,如下图所示,注意要将最左边的"#"删除
  1. 在values.yaml文件所在目录执行以下命令,开始部署Jenkins:
代码语言:javascript
复制
helm install --name-template my-jenkins -f values.yaml . --namespace helm-jenkins
  1. 部署完成后,执行命令kubectl edit deployment my-jenkins -n helm-jenkins查看当前deployment状态,如下图红框所示,Jenkins服务的内存参数和前一种方法设置的效果是一样的:
  1. 再看看pod的实际内存情况,如下图,配置已生效:

以上就是helm部署的服务的设置方式,希望能给您提供参考。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于helm部署服务
  • 面临的问题
  • 环境信息
  • 第一种修改方式:kubectl edit
  • 第二种修改方式:改helm的配置文件
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档