helm包管理工具

helm是k8s的包管理器。

我们知道在k8s上部署程序,我们需要做的就是制作镜像,然后编写yaml资源文件。如果只是基于k8s平台部署自己的程序还好,然而,如果程序部署流程非常复杂,尤其是涉及k8s平台管理类的资源,需要创建各种DeploymentServiceServiceAccountRoleBinding等,那么存在一堆超复杂的yaml资源定义就是不可避免的了。那么此时如何将这个程序分发给其他用户使用呢?最简单的办法就是使用helm包管理器。

由于helm程序还在快速发展中,以下介绍仅供参考,具体可以参考官方文档。

官方文档:https://helm.sh/zh/docs/

helm中的几个概念

  • repo:软件包仓库,类比于Ubuntu的apt源
  • helm:包管理器程序,可以类比于Ubuntu中的apt程序
  • chart:程序包,可以类比于ubuntu中的deb
  • ArtifactHub:该地址注册了各种公有库的chart包资源,相当于是repo的仓库

helm安装

Ubuntu下,我们可以通过如下操作安装helm程序:

curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
sudo apt-get install apt-transport-https --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm

helm基本使用方法

下面介绍如何使用helm,以及如何通过helm安装、卸载k8s程序。

注意:我们访问的仓库可能国内网络无法使用,我们可以通过设置shell环境变量来让helm通过代理网络访问,例子如下:

export http_proxy=192.168.1.103:10809
export https_proxy=192.168.1.103:10809

查询chart包

helm search <仓库> <软件包>

例子:

其中,hub是指ArtifactHub,包含多个公有库。如果需要访问私有仓库或指定的仓库,我们可以用命令helm repo add <仓库名> <仓库地址>先添加一个仓库,然后使用指定仓库名来搜索。

实际上,在命令行中查询chart比较难以观察,我们可以直接在网页上查询ArtifactHub

添加仓库

安装软件包前我们需要先添加仓库。

helm repo add <仓库名> <仓库地址>

例子:

更新仓库信息

添加了仓库后,可以使用update命令更新仓库信息,更新后才能安装软件包。

helm repo update

例子:

安装chart包

helm install <自定义release名字> <chart包名>
  • apt包管理器等不同,安装helm时,我们需要指定一个自定义的名字。

注意:如果要安装到指定命名空间,可以用--namespace参数。

查看已安装chart包

helm ls

注意:如果要查询安装到指定命名空间的包,用--namespace参数。

卸载chart包

helm uninstall <自定义release名字>

--namespace问题同上。

升级chart包

helm upgrade <自定义release名字> <chart包名>

--namespace问题同上。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap