Kubernetes 的应用商店Helm

125 阅读2分钟

云原生 从docker、Jenkins、Kubernetes从入门到精通系列

一、简介

helm官网

一般情况下,我们使用yaml对应用进行部署,但是这种部署的弊端很大,因为要产生很多的对象,比如Deployment,Service等等。所以,我们需要使用一种类似于docker发布镜像一样的东西,那么他就是Helm,k8s的应用商店。

Helm 帮助您管理 Kubernetes 应用—— Helm Chart,即使是最复杂的 Kubernetes 应用程序,都可以帮助您定义,安装和升级。

Helm Chart 易于创建、发版、分享和发布,所以停止复制粘贴,开始使用 Helm 吧。

类似docker发布镜像

1621149160090.png

二、安装

1、用二进制版本安装

每个Helm 版本都提供了各种操作系统的二进制版本,这些版本可以手动下载和安装。

  1. 下载 需要的版本
  2. 解压(tar -zxvf helm-v3.0.0-linux-amd64.tar.gz)
  3. 在解压目中找到helm程序,移动到需要的目录中(mv linux-amd64/helm /usr/local/bin/helm)

三、入门使用

1、三大概念

  • Chart 代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。你可以把它看作是 Homebrew formula,Apt dpkg,或 Yum RPM 在Kubernetes 中的等价物。
  • Repository(仓库) 是用来存放和共享 charts 的地方。它就像 Perl 的 CPAN 档案库网络 或是 Fedora 的 软件包仓库,只不过它是供 Kubernetes 包所使用的。
  • Release 是运行在 Kubernetes 集群中的 chart 的实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release。以 MySQL chart为例,如果你想在你的集群中运行两个数据库,你可以安装该chart两次。每一个数据库都会拥有它自己的 releaserelease name

在了解了上述这些概念以后,我们就可以这样来解释 Helm:

Helm 安装 charts 到 Kubernetes 集群中,每次安装都会创建一个新的 release。你可以在 Helm 的 chart repositories 中寻找新的 chart。

helm pull bitnami/mysql
helm install -f values.yaml mysqlhaha ./

2、helm 使用

先使用helm安装一个mysql

image.png

#添加一个chart仓库,
helm repo add bitnami https://charts.bitnami.com/bitnami
#当添加完成,您将可以看到可以被您安装的charts列表:
helm search repo bitnami
#查询中央仓库的 mysql
 helm search hub mysql
#更新仓库
helm repo update
#下载mysql
helm pull bitnami/mysql
#解压
tar -zxvf mysql-9.14.2.tgz

image.png 其中charts的相关结构: cat Chart.yaml描述chart。

image.png cd templates查看

image.png 其中的很多对象都是我们需要在k8s中创建的。 helm install -f values.yaml mymysql ./

image.png bb0odC3VCp 查看,安装成功: image.png

helm的结构

1621149733464.png

1621149790311.png

应用安装的流程

1621162149635.png

如何自定义变量值

1621162185331.png

相关命令

helm install xx
helm list
helm status xx
helm rollback xxx

推送helm chart

helm registry login --insecure 192.168.86.5
helm chart save /root/mariadb 192.168.86.5/chart/mariadb:test
helm chart push 192.168.86.5/chart/mariadb:test
helm registry logout 192.168.86.5