初试 Helm 3

栏目: 数据库 · 发布时间: 5年前

内容简介:【编者的话】经过了长时间的开发,Helm 3 终于发布了第一个 alpha 版本。本文将简单介绍 Helm 3 新特性。Helm 2 是 C/S 架构,主要分为客户端 helm 和服务端 Tiller; 与之前版本相同,Helm 3 同样在Tiller 主要用于在 Kubernetes 集群中管理各种应用发布的版本,在 Helm 3 中移除了 Tiller, 版本相关的数据直接存储在了 Kubernetes 中。

【编者的话】经过了长时间的开发,Helm 3 终于发布了第一个 alpha 版本。本文将简单介绍 Helm 3 新特性。

移除 Tiller

Helm 2 是 C/S 架构,主要分为客户端 helm 和服务端 Tiller; 与之前版本相同,Helm 3 同样在 Release 页面提供了预编译好的二进制文件。差别在于原先的二进制包下载下来你会看到 helm 和 tiller 。而 Helm 3 则只有 Helm 的存在了。

Tiller 主要用于在 Kubernetes 集群中管理各种应用发布的版本,在 Helm 3 中移除了 Tiller, 版本相关的数据直接存储在了 Kubernetes 中。

现在我们直接在一个新创建的集群上来使用 Helm。测试集群的创建可以参考我之前的文章 使用 Kind 搭建你的本地 Kubernetes 集群。

与之前版本相同,我们需要先执行 helm init 来进行初始化。但现在的初始化就简单了很多,不再需要给集群中部署 Tiller 了。

(MoeLove) ➜  ~ export HELM_HOME=/tmp/helm3

(MoeLove) ➜  ~ helm3 init

Creating /tmp/helm3/repository

Creating /tmp/helm3/repository/cache

Creating /tmp/helm3/plugins

Creating /tmp/helm3/starters

Creating /tmp/helm3/cache/archive

Creating /tmp/helm3/repository/repositories.yaml

Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com

$HELM_HOME has been configured at /tmp/helm3.

Happy Helming!

原先,由于有 RBAC 的存在,我们在开始使用时,必须先创建一个 ServiceAccount 而现在 Helm 的权限与当前的 Kubeconfig 中配置用户的权限相同,非常容易进行控制。

这样也大大增强了使用 Helm 的安全性。 如果你想和者更多 Helm 技术专家交流,可以加我微信liyingjiese,备注『加群』。群里每周都有全球各大公司的最佳实践以及行业最新动态。

Release 名称可在不同 ns 间重用

这是 Helm Release 中提到的功能。 但此功能目前并不直接可用 相关 issue 也已经创建。

(MoeLove) ➜  ~ helm3 list

NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART

redis1  default         1               2019-05-17 00:21:06.686127031 +0800 CST deployed        redis-7.1.0

redis   default         1               2019-05-17 00:19:28.234013017 +0800 CST deployed        redis-7.1.0

(MoeLove) ➜  ~ helm3 -n moelove install redis1 stable/redis

Error: cannot re-use a name that is still in use

根源在于 Namespace 参数的获取实现上。

对应代码为:

func getNamespace() string {

 if ns, _, err := kubeConfig().ToRawKubeConfigLoader().Namespace(); err == nil {

     return ns

 }

 return "default" } 

直接使用 Kubeconfig 中的 Namespace 了,所以,我们可以做以下操作以使用此特性。

(MoeLove) ➜  ~ kubectl config current-context

kubernetes-admin@moelove

(MoeLove) ➜  ~ kubectl config set-context kubernetes-admin@moelove --namespace moelove

Context "kubernetes-admin@moelove" modified.

(MoeLove) ➜  ~ helm3 -n moelove install redis stable/redis

...# 省略输出

(MoeLove) ➜  ~ helm3 list

NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART

redis   moelove         1               2019-05-17 00:26:44.572578745 +0800 CST deployed        redis-7.1.0

可以看到,Redis 这个 Release 名称可以在 Moelove 这个 Namespace 中重复使用了。

必须指定 Release 名称

在 Helm 2 中,如果没有指定 Release 的名称,则会自动随机生成一个名称。但是在 Helm 3 中,则必须主动指定名称,或者增加 --generate-name 的参数。比如:

(MoeLove) ➜  ~ helm3 install stable/redis

Error: must either provide a name or specify --generate-name

(MoeLove) ➜  ~ helm3 install stable/redis --generate-name

...# 省略输出

(MoeLove) ➜  ~ helm3 list

NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART

redis1                  default         1               2019-05-17 00:21:06.686127031 +0800 CST deployed        redis-7.1.0

redis-1558024567        default         1               2019-05-17 00:36:09.294632336 +0800 CST deployed        redis-7.1.0

redis                   default         1               2019-05-17 00:19:28.234013017 +0800 CST deployed        redis-7.1.0

支持将 Chart 推送至 Docker 镜像仓库中

简而言之就是使用镜像仓库同时存储 Docker 镜像和 Helm 3 Chart 不过这个功能我暂时还没验证。之后有空再验证。

移除掉了 helm serve

在 Helm 2 中,可以简单的通过 helm serve 来启动一个本地简单的 HTTP 服务,用于托管本地 local repo 中的 Chart 信息。

不过这个功能在 Helm 3 中被移除了。可能是使用场景有限。

总结

Helm 3 的改动还是比较大的,但是去除掉 Tiller 的选择是非常正确的,这让集群权限的管理更加简单清晰。更多关于 Helm 3 的信息请关注 ReleaseNote

原文链接: 初试 Helm 3 (作者:张晋涛)


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据科学家养成手册

数据科学家养成手册

高扬 / 电子工业出版社 / 2017-5 / 79

作为认知科学的延伸,数据科学一方面应该越来越引起广大大数据工作者的重视,另一方面也要撩开自己的神秘面纱,以最为亲民的姿态和每位大数据工作者成为亲密无间的战友,为用科学的思维方式进行工作做好理论准备。《数据科学家养成手册》从众多先贤及科学家的轶事讲起,以逐步归纳和递进的脉络总结出科学及数据科学所应关注的要点,然后在生产的各个环节中对这些要点逐一进行讨论与落实,从更高、更广的视角回看科学及数据科学在各......一起来看看 《数据科学家养成手册》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器