该笔记将记录:在 Kubernetes 中,HELM 安装配置,以及常见问题处理;
认识
官网:https://helm.sh/
文档:https://helm.sh/docs/
仓库:https://github.com/helm/helm
Helm —— The package manager for Kubernetes —— 其是 Kubernetes 的包管理器,其作用与 pip for Python、npm for Node.js、yum for CentOS 等等工具类似。通过 Helm 工具,其将 Kubernetes 包定义为一系列清单文件和一些元数据。这些清单文件其实就是模板。Helm 实例化包的时候,会给模板中的字段赋值。Helm 包被称 Chart。Helm 是管理 Kubernetes Charts 的工具。
如果不想手写所有的 Kubernetes YAML 文件,如何通过命令行从仓库中查找一个包,然后下载并安装?
组成
组件 | Components | 原理 | Principles
图表 | Chart
Kubernetes Charts 则是包,其与 RPM in CentOS、DEB in Debian 等等类似。
Kubernetes Charts 是预先配置的 Kubernetes 资源包。
Chart:当通过 Helm 部署服务时,是对 Chart 进行操作,Chart 是最小的操作单元;
Values Files | https://helm.sh/docs/chart_template_guide/values_files/
Chart Repository
Repository(仓库):其中保存各种各样的 Chart 资源,我们能够从中选择需要安装的 Chart 资源;
ChartMuseum | https://helm.sh/docs/topics/chart_repository/
helm cm-push plugin | https://github.com/chartmuseum/helm-push
命令程序 and 配置文件
在 Helm v3 中,只需要安装 Helm 客户端。
性质
历史 History 回滚 Rollback
通过 helm history 命令,来查看 Helm Release 的历史版本。
查看特定版本的详细信息
helm get values <RELEASE_NAME> –revision <REVISION_NUMBER> -n <NAMESPACE>
helm get manifest <RELEASE_NAME> –revision <REVISION_NUMBER> -n <NAMESPACE>
结合 helm rollback 使用,查看历史版本的主要目的之一是为了回滚。
插件 Plugin 扩展 Extension
https://helm.sh/docs/topics/plugins/
https://helm.sh/docs/helm/helm_plugin/
配置 Bash 补全
echo "source <($(which helm) completion bash)" >> ~/.bashrc source ~/.bashrc
构建
版本选择
版本与其支持的集群版本,参考 Helm Version Support Policy 文档;
Release Helm 3.5.3 · helm/helm
安装方式
容器镜像
https://hub.docker.com/r/alpine/helm
docker.io/alpine/helm:3.18
ccr.ccs.tencentyun.com/d3rm-3rd/docker.io_alpine_helm:3.18
from Binary | *.tar.gz
访问 GitHub/helm/helm/Releases 下载二进制包,然后解压到 PATH 目录,比如 /usr/local/bin/ 目录,即可;
如果国内下载慢,可以使用 https://mirrors.huaweicloud.com/helm/ 镜像站点
Kubernetes 1.22, https://get.helm.sh/helm-v3.7.2-linux-amd64.tar.gz https://mirrors.huaweicloud.com/helm/v3.13.3/helm-v3.13.3-linux-amd64.tar.gz # Helm 3.10.x ⇒ 1.25.x - 1.22.x https://mirrors.huaweicloud.com/helm/v3.10.3/ https://mirrors.huaweicloud.com/helm/v3.10.3/helm-v3.10.3-linux-amd64.tar.gz https://mirrors.huaweicloud.com/helm/v3.10.3/helm-v3.10.3-linux-arm64.tar.gz # Helm 3.9.x ⇒ 1.24.x - 1.21.x https://mirrors.huaweicloud.com/helm/v3.9.4/ https://mirrors.huaweicloud.com/helm/v3.9.4/helm-v3.9.4-linux-amd64.tar.gz https://mirrors.huaweicloud.com/helm/v3.9.4/helm-v3.9.4-linux-arm64.tar.gz
from Repo on Ubuntu/Debian
# curl https://baltocdn.com/helm/signing.asc | apt-key add - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 294AC4827C1A168A cat > /etc/apt/sources.list.d/helm-stable-debian.list <<EOF deb https://baltocdn.com/helm/stable/debian/ all main EOF apt-get update apt-get install helm=3.6.3-1 # for Kubernetes 1.21.x - 1.18.x apt-get install helm=3.7.2-1 # for Kubernetes 1.22.x - 1.19.x
with asdf
asdf plugin-list-all | grep helm asdf plugin-add helm asdf list all helm asdf install helm 3.16.4 asdf global helm 3.16.4
参考
DeepSeek / 查看 helm release 历史版本
DeepSeek / 查看某个 REVISION 的信息