kubernetes集群使用helm打包发布

helm

Helm 是查找、分享和使用软件构建 Kubernetes 的最优方式。

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

官网:https://helm.sh/

Helm 是什么?

什么是 Helm Helm 为团队提供了在 Kubernetes 内部创建、安装和管理应用程序时需要协作的工具,有点类似于 Ubuntu 中的 APT 或 CentOS 中的 YUM。

有了 Helm,开发者可以:

  • 查找要安装和使用的预打包软件(Chart)
  • 轻松创建和托管自己的软件包
  • 将软件包安装到任何 K8s 集群中
  • 查询集群以查看已安装和正在运行的程序包
  • 更新、删除、回滚或查看已安装软件包的历史记录

特点

复杂性管理

即使是最复杂的应用,图表 Charts 依然可以描述, 提供使用单点授权的可重复安装应用程序。

易于升级

随时随地升级和自定义的钩子消除您升级的痛苦。

分发简单

图表 Charts 很容易在公共或私有化服务器上发版,分发和部署站点。

回滚

使用 helm rollback 可以轻松回滚到之前的发布版本。

Helm 组件和相关术语

helm

  • Helm 是一个命令行下的客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。

Chart

  • Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件。

Repoistory

  • Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。

Release

  • 使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。可以理解为 Helm 使用 Chart 包部署的一个应用实例。

Tiller(helm3已经没有了)

  • Tiller 是 Helm 的服务端,部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求,并根据 Chart 生成 Kubernetes 的部署文件( Helm 称为 Release ),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。

Helm工作原理

img

Chart Install 过程:

Helm从指定的目录或者tgz文件中解析出Chart结构信息
Helm将指定的Chart结构和Values信息通过gRPC传递给Tiller
Tiller根据Chart和Values生成一个Release
Tiller将Release发送给Kubernetes用于生成Release
Chart Update过程:

Helm从指定的目录或者tgz文件中解析出Chart结构信息
Helm将要更新的Release的名称和Chart结构,Values信息传递给Tiller
Tiller生成Release并更新指定名称的Release的History
Tiller将Release发送给Kubernetes用于更新Release
Chart Rollback过程:

Helm将要回滚的Release的名称传递给Tiller
Tiller根据Release的名称查找History
Tiller从History中获取上一个Release
Tiller将上一个Release发送给Kubernetes用于替换当前Release

安装

用二进制版本安装

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

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

然后就可以执行客户端程序并 添加稳定仓库: helm help.

注意 针对Linux AMD64,Helm的自动测试只有在CircleCi构建和发布时才会执行。测试其他操作系统是社区针对系统问题请求Helm的责任。

[root@k8s-master helm]# wget  https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz
[root@k8s-master helm]# ls
helm-v3.6.3-linux-amd64.tar.gz
[root@k8s-master helm]# tar -xf helm-v3.6.3-linux-amd64.tar.gz
[root@k8s-master helm]# cd linux-amd64/
[root@k8s-master linux-amd64]# ls
helm  LICENSE  README.md
[root@k8s-master linux-amd64]# mv helm  /usr/local/bin/helm

#命令补全
echo "source <(helm completion bash)"  >> ~/.bashrc
source .bashrc 

使用脚本安装

Helm现在有个安装脚本可以自动拉取最新的Helm版本并在 本地安装

您可以获取这个脚本并在本地执行。它良好的文档会让您在执行之前知道脚本都做了什么。

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

如果想直接执行安装,运行curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

配置Chart仓库

在 Helm 中默认是不会添加 Chart 仓库,所以这里我们需要手动添加,下面是添加一些常用的 Charts 库,命令如下:

helm repo add  elastic    https://helm.elastic.co
helm repo add  gitlab     https://charts.gitlab.io
helm repo add  harbor     https://helm.goharbor.io
helm repo add  bitnami    https://charts.bitnami.com/bitnami
helm repo add  incubator  https://charts.helm.sh/incubator
helm repo add az-stable http://mirror.azure.cn/kubernetes/charts/

helm3添加仓库
helm repo add --username=admin --password=Harbor12345  myharbor  https://har.harbor.com

增加完仓库后,需要执行更新命令,将仓库中的信息进行同步:

helm repo update

Helm相关命令

helm repo list                         #查看仓库
helm ls                                 #查看release
helm install 仓库名/包名               #安装
helm template 仓库名/包名 > test.yaml        #把要安装的软件包注入到yaml文件中,然后可以kubectl apply -f来应用
helm uninstall release名字                #卸载release
helm repo add 自定义仓库名字 仓库路径         #添加仓库
helm repo remove 仓库名称                #删除仓库
helm lint 软件包目录                       #检查里面文件的语法
helm upgrade 仓库名/包名 或者 软件包名称        #更新helm之前部署的应用
helm create 名称                       #创建自定义chart
helm plugin add 插件网址                #安装插件,比如helmpush
helm pull 仓库名/包名                   #拉去helm镜像,一般为tgz结尾
helm status release名称                #查看release状态
helm version                            #查看helm版本
helm show values release名称             #查看release的values文件
helm show all release名称                 #查看release的所有信息
helm show chart release名称               #查看release中Chart信息
helm repo update                           #更新仓库信息
helm packages 路径                            #打包

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这货有点懒!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值