第 4 章 Helm CLI
4.1. Helm 3 入门
4.1.1. 了解 Helm
Helm 是一个软件包管理程序,它简化了应用程序和服务部署到 OpenShift Container Platform 集群的过程。
Helm 使用名为 charts 的打包格式。Helm chart 是描述 OpenShift Container Platform 资源的一个文件集合。
在集群中运行的一个 chart 实例被称为 release。当每次一个 chart 在集群中安装时,一个新的 release 会被创建。
在每次安装 chart,或一个版本被升级或回滚时,都会创建增量修订版本。
4.1.1.1. 主要特性
Helm 提供以下功能:
- 搜索存储在 chart 存储库中的一个大型 chart 集合。
- 修改现有 chart。
- 使用 OpenShift Container Platform 或 Kubernetes 资源创建自己的 chart。
- 将应用程序打包为 chart 并共享。
4.1.2. 安装 Helm
下面的部分论述了如何使用 CLI 在不同的平台中安装 Helm。
在 OpenShift Container Platform web 控制台中,点右上角的 ? 图标并选 Command Line Tools。
先决条件
- 已安装了 Go 版本 1.13 或更高版本。
4.1.2.1. 对于 Linux
下载 Helm 二进制文件并将其添加到您的路径中:
# curl -L https://mirror.openshift.com/pub/openshift-v4/clients/helm/latest/helm-linux-amd64 -o /usr/local/bin/helm
使二进制文件可执行:
# chmod +x /usr/local/bin/helm
检查已安装的版本:
$ helm version
输出示例
version.BuildInfo{Version:"v3.0", GitCommit:"b31719aab7963acf4887a1c1e6d5e53378e34d93", GitTreeState:"clean", GoVersion:"go1.13.4"}
4.1.2.2. 对于 Windows 7/8
-
下载最新的
.exe
文件并放入您自己选择的目录 。 - 右键点击 Start 并点击 Control Panel。
- 选择 系统和安全性 ,然后点击 系统。
- 在左侧的菜单中选择高级系统设置并点击底部的环境变量按钮。
- 在变量部分选择路径并点编辑 。
-
点新建并输入到
.exe
文件的路径,或者点击 浏览 并选择目录,然后点 确定。
4.1.2.3. 对于 Windows 10
-
下载最新的
.exe
文件并放入您自己选择的目录 。 -
点击 搜索 并输入
env
或者environment
。 - 选择为您的帐户编辑环境变量。
- 在变量部分选择路径并点编辑 。
- 点新建并输入到 exe 文件所在目录的路径,或者点击 浏览 并选择目录,然后点击确定。
4.1.2.4. 对于 macOS:
下载 Helm 二进制文件并将其添加到您的路径中:
# curl -L https://mirror.openshift.com/pub/openshift-v4/clients/helm/latest/helm-darwin-amd64 -o /usr/local/bin/helm
使二进制文件可执行:
# chmod +x /usr/local/bin/helm
检查已安装的版本:
$ helm version
输出示例
version.BuildInfo{Version:"v3.0", GitCommit:"b31719aab7963acf4887a1c1e6d5e53378e34d93", GitTreeState:"clean", GoVersion:"go1.13.4"}
4.1.3. 在 OpenShift Container Platform 集群中安装 Helm chart
先决条件
- 您有一个正在运行的 OpenShift Container Platform 集群,并已登录该集群。
- 您已安装 Helm。
流程
创建一个新项目
$ oc new-project mysql
将一个 Helm chart 存储库添加到本地 Helm 客户端:
$ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
输出示例
"stable" has been added to your repositories
更新存储库:
$ helm repo update
安装示例 MySQL chart:
$ helm install example-mysql stable/mysql
验证 chart 是否已成功安装:
$ helm list
输出示例
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION example-mysql mysql 1 2019-12-05 15:06:51.379134163 -0500 EST deployed mysql-1.5.0 5.7.27
4.1.4. 在 OpenShift Container Platform 上创建自定义 Helm chart
流程
创建一个新项目
$ oc new-project nodejs-ex-k
下载包含 OpenShift Container Platform 对象的示例 Node.js chart:
$ git clone https://github.com/redhat-developer/redhat-helm-charts
进入包含 chart 示例的目录:
$ cd redhat-helm-charts/alpha/nodejs-ex-k/
编辑
Chart.yaml
文件并添加 chart 描述:apiVersion: v2 1 name: nodejs-ex-k 2 description: A Helm chart for OpenShift 3 icon: https://static.redhat.com/libs/redhat/brand-assets/latest/corp/logo.svg 4
验证 chart 格式是否正确:
$ helm lint
输出示例
[INFO] Chart.yaml: icon is recommended 1 chart(s) linted, 0 chart(s) failed
前往上一个目录级别:
$ cd ..
安装 chart:
$ helm install nodejs-chart nodejs-ex-k
验证 chart 是否已成功安装:
$ helm list
输出示例
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION nodejs-chart nodejs-ex-k 1 2019-12-05 15:06:51.379134163 -0500 EST deployed nodejs-0.1.0 1.16.0