前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Helm 3预览:探索我们的未来 - 第1部

Helm 3预览:探索我们的未来 - 第1部

作者头像
CNCF
发布2019-12-04 11:31:56
5900
发布2019-12-04 11:31:56
举报
文章被收录于专栏:CNCFCNCF

作者:Matt Fisher

2015年10月15日,现在被称为Helm项目诞生了。仅仅一年之后,当Helm 2快来到时,Helm社区加入了Kubernetes组织。2018年6月,Helm社区作为孵化项目加入了CNCF。时间快进到今天,Helm 3即将发布第一个alpha版本。

在接下来四周的七篇博客文章中,我将提供一些关于Helm开始的历史,说明我们是如何来到今天,展示Helm 3第一个alpha发行版中的一些新特性,并解释我们将如何从这里继续前进。

按顺序,我将讨论:

  1. Helm的创造史
  2. 向Tiller告别
  3. Chart储存库
  4. 发布管理
  5. 对Chart依赖项的更改
  6. Chart库
  7. 下一步是什么?

Helm的历史

让我们开始吧。Helm 3预览:探索我们的未来博客系列7部中的第1部是关于Helm如何创建和发展的历史。

Helm的出生

Helm 1最初是Deis创建的一个开源项目。我们是一家小型初创公司,在2017年春天被微软收购。我们的另一个开源项目 — 也称为Deis — 有一个名为deisctl的工具,主要用于在Fleet机群上安装和操作Deis平台。Fleet是当时最早的“容器编配器”平台之一。

https://blogs.microsoft.com/blog/2017/04/10/microsoft-acquire-deis-help-companies-innovate-containers/

https://github.com/coreos/fleet

2015年年中,我们决定换挡,Deis的基础(现在重新命名为“Deis工作流”)从Fleet转移到Kubernetes。我们首先要重写的是安装工具deisctl。我们使用这个工具在一个机群上安装和管理Deis工作流。

参照Homebrew、apt和yum等包管理器,Helm 1的重点是让用户更容易地在Kubernetes上打包和安装应用程序。2015年,我们在旧金山的KubeCon大会上正式宣布Helm。

我们第一次尝试Helm是成功的,但也有一定的局限性。它使用了一组Kubernetes清单,将生成的结果加载到Kubernetes中。

例如,要替换YAML文件中的字段,可以在清单中添加以下内容:

代码语言:javascript
复制
#helm:generate sed -i -e s|ubuntu-debootstrap|fluffy-bunny| my/pod.yaml

模板语言的存在让你非常高兴,是吧?

由于许多原因,这个早期的Kubernetes安装程序需要一个硬编码的清单文件列表,并且只执行一小段固定的事件序列。Deis工作流研发团队在围绕其重新开发产品时经历了一段艰难的时期,这已经够痛苦的了,但是一个想法的种子就在那里发芽。我们的第一次尝试是一个非常成功的学习机会:我们了解到,我们热衷于为用户构建实用的解决方案,为他们解决实际的日常问题。

从过去的错误中吸取教训,我们开始设计Helm 2。

设计Helm 2

随着2015年接近尾声,来自谷歌的一个团队向Helm团队伸出了援手。他们也一直在为Kubernetes开发类似的工具。Kubernetes的部署管理器(Deployment Manager)是他们用于谷歌云平台的现有工具的一个移植。他们问道,我们是否有兴趣花几天时间来讨论相似点和不同点?

2016年1月,Helm和部署管理器团队在西雅图坐下来分享一些想法。我们提出了一个大胆的计划:合并项目来创建Helm 2。随着Deis和谷歌的加入,SkippBox加入了开发团队,我们开始了Helm 2的工作。

https://github.com/skippbox

我们的目标是保持Helm的易用性,但添加了以下内容:

  • 用于自定义的Chart模板
  • 用于团队的集群内管理
  • 一流的Chart存储库
  • 一个稳定和可签名的软件包格式
  • 对语义版本控制和保持版本间向后兼容性的强烈承诺

为了实现这些目标,我们向Helm生态系统添加了第二个组件。这个集群内组件被称为Tiller,它负责安装和管理Chart。

Helm 2自2016年发布以来,Kubernetes增加了几个主要功能。增加了基于角色的访问控制(Role-Based Access Control,RBAC),并最终取代了基于属性的访问控制(Attribute-Based Access Control ,ABAC)。引入了许多新的资源类型(当时Deployment还处于beta测试阶段)。发明了自定义资源定义(Custom Resource Definition,当时称为第三方资源,Third Party Resource或TPR)。最重要的是,出现了一组最佳实践。

在所有这些变化中,Helm继续满足Kubernetes用户的需求。经过3年的时间和许多新特性的添加,对代码库进行一些主要的更改是一个好主意,这样Helm就可以继续满足这个不断发展的生态系统的需求。

这把我们带到了Helm 3 - 我们的下一篇博客文章讨论Tiller的命运。不要错过Helm 3预览:探索我们的未来博客系列共7部文章。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

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

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

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