1 前言
Helm
是优秀的基于Kubernetes
的包管理器。利用Helm
,可以快速安装常用的Kubernetes
应用,可以针对同一个应用快速部署多套环境,还可以实现运维人员与开发人员的职责分离。现在让我们安装并体现一下,如何通过Helm
安装MongoDB
吧。
Kubernetes
环境搭建可参考:Mac上使用Docker Desktop启动Kubernetes,踩坑后终于搞掂
2 Helm相关概念
包管理是一种复用理念,Helm
与Kubernetes
的关系,就像是yum
与CentOS
,pip
于python
,npm
于JavaScript
。Helm
的作用有以下几点:
- 快速安装常用应用:许多大公司都有
helm
仓库,为我们提供了许多优秀的应用,可以直接拉取安装,如快速部署Redis
集群、安装Jenkins
等。 - 多环境部署:通常我们需要多套环境,如开发环境、测试环境、生产环境等,
helm
可以通过模板+变量
的形式实现快速部署; - 运维与开发隔离:运维人员管理
k8s
资源,写部署模板及默认配置;开发人员只需要提供少量配置即可,把精力专注在业务开发上。
在使用helm
之前,以下概念应该要搞懂:
helm
客户端:安装在能连上kubernetes
集群的机器都行,用于安装、卸载应用等。tiller
:这是helm
的服务端,部署在kubernetes
集群中。客户端发请求给Tiller
,Tiller
再提交给kubernetes
。在helm3
已经不再需要tiller
了,所以建议使用v3
版本的helm
。chart
:一个helm
的软件包,采用TAR
格式打包,其实就是一堆用来定义kubernetes
资源的YAML
文件的集合。Repository
:仓库,存放Chart
的地方,helm
可以同时管理多个Repository
,非常方便。Release
:使用helm