良许Linux教程网 干货合集 Kubernetes应用程序包管理器Helm讲解

Kubernetes应用程序包管理器Helm讲解

Helm是Kubernetes的包管理器,类似于Python的pip centos的yum,主要用来管理 ChartsHelm Chart是用来封装Kubernetes原生应用程序的一系列YAML文件。可以在你部署应用的时候自定义应用程序的一些Metadata

image-20220317223147547

helm功能

Helm将Kubernetes的资源(如Deployments、Services或ConfigMap等)打包到一个Charts中,制作并测试完成的各个Charts将保存到Charts仓库进行存储和分发。另外,Helm实现了可配置的发布,它支持应用配置的版本管理,简化了Kubernetes部署应用的版本控制、打包、发布、删除和更新等操作。

Helm是一个基于Kubernetes的程序包(资源包)管理器,它将一个应用的相关资源组织成为Charts,并通过Charts管理程序包,其使用优势可简单总结为如下几个方面:

管理复杂应用:Charts能够描述哪怕是最复杂的程序结构,其提供了可重复使用的应用安装的定义。

易于升级:使用就地升级和自定义钩子来解决更新的难题。

简单分享:Charts易于通过公共或私有服务完成版本化、分享及主机构建。

回滚:可使用“helm rollback”命令轻松实现快速回滚。

helm核心术语

Helm将Kubernetes应用的相关配置组织为Charts,并通过它完成应用的常规管理操作。使用Charts管理应用的流程包括:

从0开始创建Charts

将Charts及其相关的文件打包为归档格式

将Charts存储于仓库(repository)中并与之交互

在Kubernetes集群中安装或卸载Charts以及管理经Helm安装的应用的版本发行周期

对Helm来说,它具有以下几个关键概念。

Charts:即一个Helm程序包,它包含了运行一个Kubernetes应用所需要的镜像、依赖关系和资源定义等,必要时还会包含Service的定义;它类似于yum的rpm文件。

Repository:Charts仓库,用于集中存储和分发Charts,类似于Python的PyPI。

Config:应用程序实例化安装运行时使用的配置信息。

Release:应用程序实例化配置后运行于Kubernetes集群中的一个Charts实例;从V3开始,Release不再是全局资源,而是存储在各自命名空间内。

helm架构

Helm主要由Helm客户端、Tiller服务器和Charts仓库(repository)组成

helm基础讲解helm基础讲解

Helm客户端是命令行客户端工具,采用Go语言编写,基于gRPC协议与Tiller

server交互。它主要完成如下任务。

本地Charts开发。

管理Charts仓库。

与Tiller服务器交互:发送Charts以安装、查询Release的相关信息以及升级或卸载已有的Release。

server(V3已将Tiller的删除,通过ApiServer与k8s交互)是托管运行于Kubernetes集群之中的容器化服务应用,它接收来自Helm客户端的请求,并在必要时与Kubernetes API Server进行交互。它主要完成以下任务。

监听来自于Helm客户端的请求。

合并Charts和配置以构建一个Release。

向Kubernetes集群安装Charts并对相应的Release进行跟踪。

升级和卸载Charts。

通常,用户于Helm客户端本地遵循其格式编写Charts文件,而后即可部署于Kuber-netes集群之上运行为一个特定的Release。仅在有分发需求时,才应该将同一应用的Charts文件打包成归档压缩格式提交到特定的Charts仓库。

Helm工作原理

helm基础讲解helm基础讲解

1、Chart Install 过程:

Helm从指定的目录或者tgz文件中解析出Chart结构信息

Helm将指定的Chart结构和Values信息通过gRPC传递给Tiller

Tiller根据Chart和Values生成一个Release

Tiller将Release发送给Kubernetes用于生成Release

2、Chart Update过程:

Helm从指定的目录或者tgz文件中解析出Chart结构信息

Helm将要更新的Release的名称和Chart结构,Values信息传递给Tiller

Tiller生成Release并更新指定名称的Release的History

Tiller将Release发送给Kubernetes用于更新Release

3、Chart Rollback过程:

Helm将要回滚的Release的名称传递给Tiller

Tiller根据Release的名称查找History

Tiller从History中获取上一个Release

Tiller将上一个Release发送给Kubernetes用于替换当前Release

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

1ad5ad6eddc451da964a8888a6fd5266d0163210
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部