安装 chart
当我们觉得准备就绪,就可以安装 chart,Helm 支持四种安装方法:
安装仓库中的 chart,例如:
helm install stable/nginx
通过 tar 包安装,例如:
helm install ./nginx-1.2.3.tgz
通过 chart 本地目录安装,例如:
helm install ./nginx
通过 URL 安装,例如:
helm install https://example.com/charts/nginx-1.2.3.tgz
这里我们使用本地目录安装:
当 chart 部署到 Kubernetes 集群,便可以对其进行更为全面的测试。
将 chart 添加到仓库
chart 通过测试后可以将其添加到仓库,团队其他成员就能够使用。任何 HTTP Server 都可以用作 chart 仓库,下面演示在 k8s-node1
192.168.56.106 上搭建仓库。
在
k8s-node1
上启动一个 httpd 容器。
通过
helm package
将mychart
打包。
执行
helm repo index
生成仓库的 index 文件。
Helm 会扫描myrepo
目录中的所有 tgz 包并生成index.yaml
。--url
指定的是新仓库的访问路径。新生成的index.yaml
记录了当前仓库中所有 chart 的信息:
当前只有mychart
这一个 chart。将
mychart-0.1.0.tgz
和index.yaml
上传到k8s-node1
的/var/www/charts
目录。
通过
helm repo add
将新仓库添加到 Helm。
仓库命名为newrepo
,Helm 会从仓库下载 index.yaml。现在已经可以
repo search
到mychart
了。
除了newrepo/mychart
,这里还有一个local/mychart
。这是因为在执行第 2 步打包操作的同时,mychart
也被同步到了 local 的仓库。已经可以直接从新仓库安装
mychart
了。
如果以后仓库添加了新的 chart,需要用
helm repo update
更新本地的 index。
这个操作相当于 Ubutun 的apt-get update
。
小结
本章我们学习了 Kubernetes 包管理器 Helm。
Helm 让我们能够像 apt 管理 deb 包那样安装、部署、升级和删除容器化应用。
Helm 由客户端和 Tiller 服务器组成。客户端负责管理 chart,服务器负责管理 release。
chart 是 Helm 的应用打包格式,它由一组文件和目录构成。其中最重要的是模板,模板中定义了 Kubernetes 各类资源的配置信息,Helm 在部署时通过 values.yaml 实例化模板。
Helm 允许用户开发自己的 chart,并为用户提供了调试工具。用户可以搭建自己的 chart 仓库,在团队中共享 chart。
Helm 帮助用户在 Kubernetes 上高效地运行和管理微服务架构应用,Helm 非常重要。
下节我们开始学习 Kubernetes 网络。