相似于 Linux 的 YUM、APT,Helm 是 K8S 的包管理工具。html
Helm, 一个二进制工具,用来安装、升级、卸载 K8S 中的应用程序。linux
Helm Chart,一个 tgz 包,相似安卓的 APK。nginx
K8S 应用打包成 Chart,经过 Helm 安装到 K8S 集群中。数据库
安装 Helm,解压到 /usr/loca/bin/ 下服务器
wget https://get.helm.sh/helm-v3.3.1-linux-amd64.tar.gz
添加国内仓库微信
helm repo add apphub https://apphub.aliyuncs.com helm repo update helm repo list
查找 nginxapp
helm search repo nginx
安装 nginx-ingress 到 K8S 中工具
helm install nginx apphub/nginx
若是有报错,有些旧仓库往会最新版 K8S,这里是 v1.18.2按照,会报错,能够换个仓库或者下载下来修改后本地安装ui
报错 Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1" helm pull apphub/nginx-ingress --untar grep -irl "extensions/v1beta1" nginx-ingress | grep deployment grep -irl "extensions/v1beta1" nginx-ingress | grep deploy | xargs sed -i 's#extensions/v1beta1#apps/v1#g' helm install nginx1 ./nginx-ingress/
再安装一个 nginx-ingressspa
helm install nginx2 apphub/nginx
查看已经安装了哪些
helm list
卸载
helm uninstall nginx helm uninstall nginx2
在 K8S 中查看安装的应用
kubectl get pod kubectl get service
Helm的应用包,采用tgz格式。相似于 Yum 的 RPM,其包含了一组定义 Kubernetes 资源相关的 YAML 文件,也称为应用 Chart。
Helm 的应用仓库,保存了一系列的 Chart 应用包以供用户下载,而且提供了一个该 Repository 的 Chart 包清单文件以供查询。
Helm 能够同时管理多个不一样的 Repository。
Helm 社区官方提供了 stable 和 incubator 仓库,用户也能够本身搭建仓库。
仓库能够是公共仓库,也能够是私有仓库。
不一样的我的和组织提供的公共仓库造成了分散和分布的 Helm 仓库,不利于查找,因此官方提供了Helm Hub,各公共仓库能够注册到 Helm Hub 中以方便集中查找,Helm Hub 只是分布的仓库的集中展现中心。
仓库注册到 Helm Hub 时,会将 Chart 清单文件向 Helm Hub 同步一份,这样能够在 Helm Hub 集中展现仓库列表和各仓库中的 Chart 列表。
Chart 包也就是 tgz 文件实际上存储在各仓库中。Helm Hub 并不实际存储 Chart 包。Helm 只是在查询 Chart 时和 Helm Hub 有交互,其它操做都是和仓库直接交互的。
在 K8S 集群上运行的 Chart 的一个实例。
在同一个集群上,一个Chart能够安装不少次。
每次安装都会建立一个新的 Release。
例如一个 MySQL Chart,若是想在服务器上运行两个 MySQL 数据库,就能够把这个 Chart 安装两次。每次安装都会生成一个新的 Release。
Helm Chart 可帮助 K8S 应用实现打包、共享、一键安装。
Helm Hub 收集了全球的各公共仓库信息,以便用户能够集中查找,但 Helm Hub 并无实际存储 Chart 包,只是告诉用户你能够去哪里下载到 Chart 包。
微信公众号:zuolinux_com