目录
Helm 是 Kubernetes 包管理器。帮助您管理 Kubernetes 应用 -- Helm Chart
,即使是最复杂的 Kubernetes 应用程序,都可以帮助您定义、安装和升级。
结合传统应用的认知,Helm Chart 云原生应用包与传统应用包有以下几个维度的差异:
属性维度 | Helm Chart | 传统应用 |
---|---|---|
硬件平台 | ARM、X86 | ARM、X86 |
系统平台 | Kubernetes | Linux、Windows |
可运行文件 | java 程序、C 程序、Python 程序 | java 程序、C 程序,Python 程序 |
可运行文件封装 | Image 镜像、HelmChart | rpm、deb、exe |
管理工具 | Helm | YUM、APT |
配置及环境信息 | values.yaml | /etc/nginx/nginx.conf、JVM 启动参数 |
说明文档 | NOTES.txt、 README.md | help 帮助、man 文档 |
1.1. Helm 核心概念
在 Helm 生态中,有以下几个核心概念需要了解
1.1.1. Helm
Helm 是 Kubernetes 的包管理器。
按照惯例,当指项目时,Helm
使用首字母大写。
当指命令行时, helm
所有字母使用小写。
1.1.2. Helm Chart
Helm Chart 代表着 Helm 包。包涵盖了将 Kubernetes 应用安装到 Kubernetes 集群所需要的足够多的信息。它基于一定的模板规范、目录结构和文件格式进行打包后的 tar 和 gzip 压缩包(并且可选签名) 。
1.1.3. Chart Release
Helm Release 是运行在 Kubernetes 集群中的 Chart 的实例。一个 Chart 通常可以在同一个集群中安装多次,每一次安装都会创建一个新的 Release。
以 MySQL Chart 为例,如果你想在你的集群中运行两个数据库,你可以安装该 Chart 两次。每一个数据库都会拥有它自己的 Release 和 Release Name。
1.1.4. Chart Repository
Helm Repository(仓库) 是用来存放和共享 Charts 的地方。它就像 Perl 的 CPAN 档案库网络 或是 Fedora 的 软件包仓库,只不过它是供 Kubernetes 包所使用的。
Helm 官方默认的 Repository 是 Artifact Hub
1.2. 前置要求
Helm 通过 Kubernetes 的上下文 ~/.kube/config
来访问和管理 Kubernetes 集群中的 Chart。
想成功和正确地使用 Helm,需要以下前置条件。
- 一个 Kubernetes 集群。快速体验可以 使用 minikube 来快速搭建一套 Kubernetes 集群
- 确定你安装版本的安全配置。Helm 版本与 Kubernetes 版本有一定的版本匹配依赖,详情见 Helm 版本与 K8s 版本对应关系
- 安装和配置 Helm。Helm3 下载安装
1.3. Helm 安装与配置
根据 Kuberentes 的版本来选择对应的 Helm 版本。如,Helm 的 3.7.x
版本可以兼容 Kuberentes 的 1.22.x - 1.19.x
版本。
每一个版本的 Helm 提供多种操作系统的二进制版本,支持选择 Linux、Mac OS、Windows平台,以及 amd64、arm、i386、ppc64le、s390x 的 CPU 类型。这些二进制版本可以手动下载和安装。
所有历史版本管理地址:
选择需要的版本进行下,例如 Linux amd64 版的下载地址
下载完成后,解压安装:
wget https://get.helm.sh/helm-v3.7.2-linux-amd64.tar.gz
tar xf helm-v3.7.2-linux-amd64.tar.gz
cp linux-amd64/helm /usr/local/bin/helm
chmod +x /usr/local/bin/helm
安装完成后,可以判断是否可正常使用。
可正常运行的输出示例:
$ helm version
version.BuildInfo{Version:"v3.7.2", GitCommit:"663a896f4a815053445eec4153677ddc24a0a361", GitTreeState:"clean", GoVersion:"go1.16.10"}
如果环境已经安装了 Kubernetes 集群,并配置了 /root/.