Kubernetes 是一个流行的容器编排工具,Helm 则是 Kubernetes 生态系统中最流行的包管理器。Helm 提供了一种简单的方式来部署复杂的应用程序,它允许我们定义应用程序的各个组件,例如 Pod、Service、ConfigMap 等,以及这些组件之间的依赖关系。
安装 Helm
在开始使用 Helm 之前,需要先安装它。可以通过以下命令来安装 Helm:
# 下载 $ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash # 验证 $ helm version version.BuildInfo{Version:"v3.6.3", GitCommit:"h3ad2b97f2d4f528c8bf17d14b9c49efca100fdf4", GitTreeState:"clean", GoVersion:"go1.16.6"}
安装成功后,应该能看到 Helm 和组件版本信息。
Helm Chart
Helm Chart 是一种打包应用程序的方式,它包含了应用程序的 Kubernetes 资源定义和各种参数。Chart 可以在应用程序开发过程中使用,我们可以通过 Chart 来管理所有的 Kubernetes 资源定义,并将它们打包到一个易于分发的归档文件中。
下面是一个简单的 Nginx Chart 示例:
-- -------------------- ---- ------- ------------ --- ------ --- ---------- --- --------- - --- --------------- - --- ------------ - --- ------------ - --- --------- - --- ------------------- - --- ------------ - --- ----- - --- -------------------- --- -----------
其中,Chart.yaml
包含了 Chart 的元数据,如 Chart 名称、版本、描述等。values.yaml
包含了 Chart 的默认值,我们可以通过修改这些值来定制我们的应用程序。
templates
文件夹中包含了 Kubernetes 的资源定义,例如 Deployment、Service、Ingress 等,这些文件中可以使用 Go 模板语言来插入我们在 values.yaml
文件中定义的值。
Helm 命令
Helm 命令非常直观,下面是一些常用的 Helm 命令:
helm install
:安装 Chart。helm upgrade
:更新 Chart。helm uninstall
:卸载 Chart。helm list
:列出安装的 Chart。helm show
:显示 Chart 的详细信息。helm search
:搜索 Chart。
下面我们以安装 Chart 为例进行演示。
首先,下载一个 Demo Chart 并解压:
$ curl -LO https://github.com/helm/helm/archive/refs/heads/main.tar.gz $ tar zxvf helm-main.tar.gz $ cd helm-main/docs/examples/chart-example
然后,安装 Chart:
$ helm install my-chart ./
my-chart
是我们为该 Chart 创建的名称,.
表示当前目录。
安装成功后,我们可以使用 helm list
命令来查看已安装的 Chart:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION my-chart default 1 2021-08-17 18:26:00.517207 +0800 CST deployed chart-example-v0 1.0.0
Helm 插件
Helm 可以使用插件来扩展其功能,例如:
helm diff
:查看安装的 Chart 和更新前后的差异。helm secrets
:帮助我们安全地管理 Kubernetes 中的机密数据。helmfile
:允许我们为我们的 Kubernetes 应用程序定义更复杂的部署流程,例如依次安装多个 Chart。
使用 helm plugin
命令可以安装 Helm 插件,例如:
$ helm plugin install https://github.com/databus23/helm-diff
安装完插件后,我们可以使用 helm diff
命令来查看 Chart 和更新前后的差异:
$ helm diff upgrade my-chart ./
总结
Helm 是 Kubernetes 生态系统中最流行的包管理器之一。Helm 允许我们定义 Kubernetes 中应用程序的各个组件及其之间的依赖关系,并提供了一种简单的方式来部署复杂的应用程序。通过本文的介绍,你应该已经了解了 Helm 的基础知识和常见的使用方法,以及如何扩展 Helm 的功能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647c57cb968c7c53b076d208