BuildRun平台升级 | 支持Helm v3兼容Helm v2

773 阅读4分钟
Helm 是目前云原生技术体系中进行应用管理最被广泛使用的开源项目,可以帮助管理Kubernetes应用程序。通过Helm Charts,可以快速定义、安装和升级复杂的Kubernetes应用程序。

本文将简短介绍一下Helm v2与v3之间的区别,以及如何将BuildRun低代码开发平台的实例升级到helm v3上。

01 Helm v2和Helm v3的区别

Helm设计之初不仅仅作为一个包管理工具,同时也试图作为一个微型的PaaS平台,因此添加了Tiller服务端,在Tiller服务端中有一整套管理流程和更新策略用以支持其作为PaaS平台的设定,但Tiller的存在却与Kubernetes概念产生了一些重合和冲突。


Tiller的存在导致release名称需要保持全局唯一性,故而不能像Kubernetes一样按照Namespace进行隔离。对于熟悉Kubernetes的用户来说,Tiller就显得有点多余,它的存在不仅提高了部署的复杂度,还含有一些安全隐患。

Helm v3在v2的基础上移除了tiller,变成了一个纯客户端工具,除此之外,还有如下一些变化:
  • 部署实例依赖于用户在对应集群中所拥有的权限
  • 支持使用secret存储实例信息,更加安全
  • 实例按照namespace进行隔离,无需全局唯一
  • 移除requirements.yaml,直接在chart.yaml中定义依赖
....

02 升级Helm v3的必要性

Helm v3相对于v2极大地提高了安全性,其部署权限完全依赖于终端用户所拥有的权限,而非tiller服务的权限,同时v3也更接近Kubernetes的设计理念,减少了开发人员的学习成本和不必要的疑惑。

03 BuildRun平台如何同时支持Helm v2和v3

目前部分用户可能由于各种原因无法升级到Helm v3,所以BuildRun在升级Helm v3的同时保持了对v2版本的支持。

用户在激活集群时可以选择使用v2或者v3版本:

激活之后集群与平台交互流程如下:


如果用户部署v2版本,则helm-helper:v2会随之一起部署,如果用户部署v3版本则会一起部署helm-helper:v3,helm-helper:v2 与helm-helper:v3 为agent提供相同的接口,agent在进行helm操作时,可直接调用helm-helper接口,达到兼容v2和v3的目的。

04 如何从Helm v2升级到Helm v3

Helm官方提供了升级插件,可以快速从Helm v2升级到Helm v3,BuildRun低代码开发平台上管理的集群可以参考以下步骤进行升级:

▍迁移v2版本的release到v3版本

1. 下载Helm v3版本客户端,并安装2to3插件,安装插件命令如下:
helm plugin install https://github.com/helm/helm-2to3.git
2. 执行迁移命令,其中helm_v2表示v2版本的Helm客户端,helm_v3表示v3版本的Helm客户端
helm_v2 list  | grep -v NAME | awk '{print $1}' | xargs -n1 helm_v3 2to3 convert
▍停用旧版本Agent
helm delete choerodon-cluster-agent-xxx --purge

▍停用Tiller服务

kubectl scale deployment tiller-deploy -n kube-system --replicas 0

▍启用v3版本Agent

在集群激活界面复制v3版本激活命令,并使用Helm v3版本客户端进行激活即可。

通过上述步骤即可快捷迁移v2版本的release到Helm v3版本,欢迎大家前往BuildRun低代码开发平台试用体验。

▨ 使用中遇到问题怎么办?

在Buildrun使用过程中,任何关于平台的问题和建议,都可以点击页面右下角用户反馈按钮,实时向开发团队提交反馈,我们会在第一时间处理


▨ BuildRun低代码开发教程

关于BuildRun低代码开发平台的使用,可查看详细的开发教程,本系列开发教程每周一更,欢迎持续关注。

前三节课程回顾▼

关于BuildRun

BuildRun带来了多云架构环境下基于视觉的企业级应用创建、集成、部署、生命周期管理和分发的能力,由开源Choerodon猪齿鱼核心团队创立的BuildRun公司(上海翘腾科技有限公司)的使命是以云原生的现代化软件架构来帮助企业提升软件开发生产力和业务敏捷性,它提供企业级DevOps平台和企业级低代码开发平台,帮助隐藏应用所依赖的基础环境的复杂性,让每个人都只需要专注在业务逻辑上,以新的方式让团队能够快速、持续地将他们的想法转化为真正的商业价值。

欢迎免费注册,体验试用低代码应用开发