写点什么

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

作者:程序员欣宸
  • 2022-11-18
    广东
  • 本文字数:1105 字

    阅读完需:约 4 分钟

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

欢迎访问我的 GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

关于 helm 部署服务

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


helm install --namespace helm-jenkins --name my-jenkins stable/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 来修改最直接有效:

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


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


  • 等 pod 创建和启动成功后再次查看,如下图,新 pod 内存果然增加了:


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

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

  • 执行命令 helm fetch stable/jenkins ,该命令会将 jenkins 服务相关的配置全部下载,即名为 jenkins-0.13.5.tgz 的文件;

  • 解压 jenkins-0.13.5.tgz 文件;

  • 解压后得到名为 jenkins 的文件夹,进去发现如下内容:


[root@node1 jenkins]# lsChart.yaml OWNERS README.md templates values.yaml
复制代码


  • 打开 values.yaml 文件,如下图,里面有丰富的配置项,注意红框位置是我们要调整的:

  • 修改上图红框中的值,这里改为 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 部署的服务的设置方式,希望能给您提供参考。

欢迎关注 InfoQ:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...


发布于: 刚刚阅读数: 3
用户头像

搜索"程序员欣宸",一起畅游Java宇宙 2018-04-19 加入

前腾讯、前阿里员工,从事Java后台工作,对Docker和Kubernetes充满热爱,所有文章均为作者原创,个人Github:https://github.com/zq2599/blog_demos

评论

发布
暂无评论
Helm部署的服务如何修改配置_Kubernetes_程序员欣宸_InfoQ写作社区