Helm is the best way to find, share, and use software built for Kubernetes.
先决条件
想成功和正确地使用Helm,需要以下前置条件。
- 一个 Kubernetes 集群
- 确定你安装版本的安全配置
- 安装和配置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 hub
从 Artifact Hub 中查找并列出 helm charts
。 Artifact 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 |
安装 mysql
kubectl create namespace blazehu |
helm show chart bitnami/mysql 获取关于该chart的基本信息 |
查看发布的版本
卸载一个版本
该命令会从Kubernetes卸载 mysql-1638628962, 它将删除和该版本相关的所有相关资源(service
、deployment
、 pod
等等)甚至版本历史。
helm uninstall
的时候提供 --keep-history
选项, Helm将会保存版本历史。 可以通过命令查看该版本的信息。
访问 mysql
ROOT_PASSWORD=$(kubectl get secret --namespace blazehu mysql-1638633054 -o jsonpath="{.data.mysql-root-password}" | base64 --decode) |