第 3 章 Helm CLI
3.1. 在 OpenShift Container Platform 中使用 Helm 3
用于 OpenShift Container Platform 的 Helm 3 只是一个技术预览功能。技术预览功能不被红帽产品服务等级协议 (SLA) 支持,且可能在功能方面有缺陷。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的详情,请参阅 https://access.redhat.com/support/offerings/techpreview/。
3.1.1. 了解 Helm
Helm 是一个命令行界面 (CLI) 工具,简化了应用程序和服务部署到 OpenShift Container Platform 集群的过程。Helm 使用名为 chart 的打包格式。Helm chart 是描述 OpenShift Container Platform 资源的一个文件集合。
3.1.1.1. 主要特性
Helm 提供以下功能:
- 搜索存储在 chart 存储库中的一个大型 chart 集合。
- 修改现有 chart。
- 使用 OpenShift Container Platform 或 Kubernetes 资源创建自己的 chart。
- 将应用程序打包为 chart 并共享。
3.1.2. 安装 Helm
先决条件
- 已安装了 Go 版本 1.13 或更高版本。
3.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"}
3.1.2.2. 对于 Windows 7/8
-
下载最新的
.exe
文件并放入您自己选择的目录 。 - 右键点击 Start 并点击 Control Panel。
- 选择 系统和安全性 ,然后点击 系统。
- 在左侧的菜单中选择高级系统设置并点击底部的环境变量按钮。
- 在变量部分选择路径并点编辑 。
-
点新建并输入到
.exe
文件的路径,或者点击 浏览 并选择目录,然后点 确定。
3.1.2.3. 对于 Windows 10
-
下载最新的
.exe
文件并放入您自己选择的目录 。 -
点击 搜索 并输入
env
或者environment
。 - 选择为您的帐户编辑环境变量。
- 在变量部分选择路径并点编辑 。
- 点新建并输入到 exe 文件所在目录的路径,或者点击 浏览 并选择目录,然后点击确定。
3.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"}
3.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
3.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
安装 chart:
$ cd .. $ 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