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

简介: 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]# ls
Chart.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部署的服务的设置方式,希望能给您提供参考。

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关文章
|
Kubernetes 关系型数据库 MySQL
容器 & 服务:Helm Charts配置文件分析
chart 是 Helm 的应用打包格式。chart 由一系列文件组成,这些文件描述了 K8s 部署应用时所需要的资源,比如 Service、Deployment、PersistentVolumeClaim、Secret、ConfigMap 等。 chart可繁可简,即可以只用于部署一个单独的服务,例如mysql、nginx等等,也可以用于部署整个应用,例如由HTTP服务、数据库、缓存、中间件等共同构成的复杂应用。
496 0
|
Kubernetes 搜索推荐 应用服务中间件
【kubernetes】新版helm3的三大概念+快速指南+自定义charts模板
chart:代表helm包,包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。 Repository(仓库):用来存放和共享 charts 的地方。 Release :运行在 Kubernetes 集群中的 chart 的实例,一个 chart 通常可以在同一个集群中安装多次,每一次安装都会创建一个新的 release。
519 1
【kubernetes】新版helm3的三大概念+快速指南+自定义charts模板
|
2月前
|
Kubernetes 应用服务中间件 Linux
k8s--如何将chart包托管至harbor
k8s--如何将chart包托管至harbor
|
7月前
|
Kubernetes 监控 API
Rancher 系列文章 -Rancher v2.6 使用脚本实现导入集群
Rancher 系列文章 -Rancher v2.6 使用脚本实现导入集群
|
7月前
|
Kubernetes 关系型数据库 数据库
使用 Helm 部署 Wikijs
使用 Helm 部署 Wikijs
|
Kubernetes Ubuntu 应用服务中间件
使用Vagrant创建和管理本地Kubernetes(K8s)集群的步骤是什么
VirtualBox: 用于虚拟机管理。 Vagrant: 用于创建和配置虚拟机环境。 kubectl: Kubernetes命令行工具,用于管理Kubernetes集群。
230 0
|
Kubernetes 安全 Shell
Helm安装部署/添加chart公共仓库/本地仓库搭建
Helm 是 Kubernetes 的包管理器,用于管理charts(即预先配置的Kubernetes资源包)。Helm主要具有以下功能: 1. 软件打包格式:将相关Kubernetes资源打包生成标准的chart软件包格式。 2. 仓库管理:支持将chart上传到仓库进行存储、版本管理、下载等。 3. 发布管理:管理chart的不同版本,控制chart发布更新。 4. 部署安装:在Kubernetes集群中安装、升级和回滚软件。 5. 模板语法:使用模板语法进行参数化安装和配置。 6. 值管理:管理chart中参数值的区分设置。 7. 安全签名:使用数字签名确保chart来源的安全可信。
2436 0
|
存储 Prometheus 运维
关于Prometheus在K8S中的部署方案如何选择,以及分享手工部署的YAML
关于Prometheus在K8S中的部署方案如何选择,以及分享手工部署的YAML
214 0
|
弹性计算 Kubernetes 安全
第五步如何升级一个Kubernetes集群|学习笔记
快速学习第五步如何升级一个Kubernetes集群
177 0
第五步如何升级一个Kubernetes集群|学习笔记