Helm 包管理工具
众所周知,k8s可以在多个node节点上管理容器资源,但每个容器需要对应的pod-yaml文件来进行管理。
我们先说问题:如果在一个namespace中有几十个pod需要进行配合部署,例如 mysql 集群,kafka集群,但部署kafka集群又需要先部署 zookeeper集群,应用程序又需要Redis 集群,以及一些MQ队列集群,还有应用程序自身的部署,微服务可能多达50-100个甚至更多的应用。
这样的场景让你来写 yaml 配置文件 我想你可能是拒绝的,就算你部署了一次,好不容易部署完成了,但异地机房集群还要再次部署怎么办? 更何况怎么做到多个不同机房中集群的配置信息完全一致?
所以这里的问题很明显了,我们需要一个可以集中管理所有 yaml 配置文件并且可以复用的工具。
于是 Helm 就诞生了,他的定位类似于 CentOS 中的 Yum 包管理工具,又或者是 Debian中的 apt 包管理工具,只不过这次的包管理是基于 k8s 环境。
Heml 中的每个包都称为一个Chart,一个Chart是一个目录。
应用发布者可以通过Helm打包应用,管理应用依赖关系,管理应用版本并发布应用到软件仓库进行统一管理,在 k8s 中需要部署时 只需要一条指令即可部署整套 pod 应用。
Helm的官方地址:
官方的中文文档写的比较详细,有兴趣可以学习一下,我在这里再推荐一款 Helm 的UI 管理工具,可以更方便的管理企业 Helm 包信息。
kubeapps