安装

https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

helm 的概念理解

helm 是部署一组 k8s 资源的,核心概念是 Chart。
Chart 用来描述一组 k8s 资源怎么部署,资源比如 deployment,servife, pvc 等等。
Chart 的结构如下

mychart/
├── Chart.yaml         # Chart 的元数据
├── values.yaml        # 默认配置值
├── templates/         # Kubernetes 资源模板
│   ├── deployment.yaml
│   ├── service.yaml
│   └── ...
└── charts/            # 依赖的其他 Chart (可选)

根据 Chart,还衍生出了一 Release 的概念,Chart 相当于是一个安装描述。对于一个 Chart 的安装描述,真实的在一个 k8s 环境里进行一次安装称为一次 Release。每次 Release 有一个 Release name。

helm 命令

针对一个 Chart,可以使用 helm 命令做以下操作。

安装

helm upgrade --install <release-name> <chart-dir> -n <k8s-namespace>

--install 参数用来表示如果不存在这个 release 则创建。不带这个参数就不会创建新的 release 只会更新旧的。

卸载

helm uninstall <release-name> -n <k8s-namespace>

将安装的所有资源卸载掉。

helm 和 k8s 的关联

helm 会根据 Chart 的描述将资源部署到 k8s 里,本身是使用的 k8s 的 API,所以使用 helm 命令时会按类似 kubectl 使用 API 配置(比如 kubeconfig)来访问 k8s。