前言Helm与Linux的YUM、APT类似,是一款K8S包管理工具。Helm是一个二进制工具,用于安装、升级和卸载K8S中的应用程序。HelmChart,一个tgz包,类似于AndroidAPK。将K8S应用打包成chart,通过Helm安装到K8S集群中。更新历史20200717-初稿-左成礼原文地址-https://blog.zuolinux.com/2020/07/17/k8s-package-manager-helm.htmlHelmPackageManager安装Helm,解压到/usr/loca/bin/wgethttps://get.helm.sh/helm-v3.3.1-linux-amd64.tar.gz添加国内仓库helmrepo添加apphubhttps://apphub.aliyuncs.comhelmrepoupdatehelmrepolistfindnginxhelmsearch回购nginx安装nginx-ingress到K8S。Helminstallnginxapphub/nginx会报错,一些老仓库往往会使用最新版的K8S。这里是v1.18.2,会报错。可以换仓库也可以下载修改。本地安装会报错Error:unabletobuildkubernetesobjectsfromreleasemanifest:unabletorecognize"":nomatchesforkind"Deployment"inversion"extensions/v1beta1"helmpullapphub/nginx-ingress--untargrep-irl"扩展/v1beta1"nginx-ingress|grep部署grep-irl"extensions/v1beta1"nginx-ingress|grep部署|xargssed-i's#extensions/v1beta1#apps/v1#g'helminstallnginx1./nginx-ingress/Installanothernginx-ingresshelminstallnginx2apphub/nginx检查哪个helm列表已经安装uninstallhelmuninstallnginxhelmuninstallnginx2checkK8S中已安装的应用程序kubectlgetpodkubectl获取serviceHelmChartHelm的应用包,使用类似Yum的RPM的tgz格式,包含一组定义Kubernetes资源的YAML文件,也称为应用图表。RepoistoryHelm的应用仓库保存了一系列Chart应用包供用户下载,并提供了Repository的Chart包清单文件供用户查询。Helm可以同时管理多个不同的Repositories。Helm社区官方提供stable和incubator仓库,用户也可以自己建仓库。存储库可以是公共的或私有的。Hub的不同个人和组织提供的公共仓库形成了去中心化、分布式的Helm仓库,不利于搜索,所以提供官方的HelmHub,每个公共仓库都可以在HelmHub中注册,方便集中搜索.HelmHub只是一个分布式仓库集中展示中心。当仓库注册到HelmHub后,会同步一个图表列表文件到HelmHub,这样仓库列表和各个仓库中的图表列表就可以在HelmHub上集中展示。图表包,又名tgz文件,实际上存储在每个存储库中。HelmHub实际上并不存储Chart包。Helm仅在查询Charts时与HelmHub交互,其他操作直接与仓库交互。发布运行在K8S集群上的Chart实例。在同一个集群上,一个Chart可以安装多次。每次安装都会创建一个新版本。比如一个MySQLChart,如果你想在服务器上运行两个MySQL数据库,你可以安装两次Chart。每次安装都会生成一个新版本。结语HelmChart可以帮助K8S应用实现打包、共享、一键安装。HelmHub收集了全球公共仓库的信息,以便用户集中搜索,但HelmHub并不实际存储Chart包,只是告诉用户哪里可以下载Chart包。联系我微信公众号:zuolinux_com
