Helm3 简介

Helm is the best way to find, share, and use software built for Kubernetes.

先决条件

想成功和正确地使用Helm,需要以下前置条件。

  1. 一个 Kubernetes 集群
  2. 确定你安装版本的安全配置
  3. 安装和配置Helm。

三大概念

Chart 代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。你可以把它看作是 Homebrew formula,Apt dpkg,或 Yum RPM 在Kubernetes 中的等价物。

Repository(仓库) 是用来存放和共享 charts 的地方。它就像 Perl 的 CPAN 档案库网络 或是 Fedora 的 软件包仓库,只不过它是供 Kubernetes 包所使用的。

Release 是运行在 Kubernetes 集群中的 chart 的实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release。以 MySQL chart为例,如果你想在你的集群中运行两个数据库,你可以安装该chart两次。每一个数据库都会拥有它自己的 release 和 release name。

在了解了上述这些概念以后,我们就可以这样来解释 Helm:

Helm 安装 charts 到 Kubernetes 集群中,每次安装都会创建一个新的 release。你可以在 Helm 的 chart repositories 中寻找新的 chart。

安装

我这里直接下载二进制文件,解压后移动到 /usr/local/bin/

安装指南
下载地址

初始化

helm repo add bitnami https://charts.bitnami.com/bitnami

查看可以安装的charts列表

helm search hubArtifact Hub 中查找并列出 helm chartsArtifact Hub 中存放了大量不同的仓库。

helm search repo bitnami

安装Chart示例

由于我是用的k3s ,而 helm v3 版本不再需要 Tiller,而是直接访问ApiServer来与k8s交互,通过环境变量KUBECONFIG来读取存有ApiServer的地址与token的配置文件地址,默认地址为~/.kube/config ,所以需要配置环境变量export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

配置环境变量

vim /etc/profile
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
source /etc/profile

安装 mysql

kubectl create namespace blazehu
helm install bitnami/mysql --generate-name -n blazehu

helm show chart bitnami/mysql   获取关于该chart的基本信息
helm show all bitnami/mysql 获取关于该chart的所有信息

查看发布的版本

卸载一个版本

该命令会从Kubernetes卸载 mysql-1638628962, 它将删除和该版本相关的所有相关资源(servicedeploymentpod等等)甚至版本历史。

helm uninstall 的时候提供 --keep-history 选项, Helm将会保存版本历史。 可以通过命令查看该版本的信息。

访问 mysql

ROOT_PASSWORD=$(kubectl get secret --namespace blazehu mysql-1638633054 -o jsonpath="{.data.mysql-root-password}" | base64 --decode)
kubectl get svc -n blazehu
mysql -h${HOST} -uroot -p${ROOT_PASSWORD}