移除 Tiller
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 的安全性。
Release 名称可在不同 ns 间重用
(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 名称
(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 镜像仓库中
移除掉了 helm serve
不过这个功能在 Helm 3 中被移除了。可能是使用场景有限。
总结
本文转载自公众号:MoeLove, 点击查看原文。
获取更多 Helm 相关资料,扫描下方二维码加微信好友,备注『加群』。