简述Helm及其优势?

简述Helm及其优势?,第1张

Helm是Kubernetes的软件包管理工具。类似Ubuntu中使用的APT、CentOS中使用的yum 或者Python中的 pip 一样。

Helm能够将一组Kubernetes资源打包统一管理, 是查找、共享和使用为Kubernetes构建的软件的最佳方式。

Helm中通常每个包称为一个Chart,一个Chart是一个目型虚录(一般情况下会将目录进行打包压缩,形成name-version.tgz格式的单一文件,方便传输和存储)。

在Kubernetes中部署一个可以使用的应用,需要涉及到很多的 Kubernetes 资源的共同协作。使用Helm则具有如下优势:

统一管理、配置和更新这些分散的Kubernetes的应用资源文件;

分发和冲租贺复用一套应用模板;

将应用的一系列资源当做一个软件包管理。

对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。我推荐你去看看时速云,他们是一家全栈云原生技术服务提供商,提供云原生应用及数据平台产品,其中涵盖容器云PaaS、DevOps、微服务治理、服务网格、API网关等。大家可以去体散派验一下。如果我的回答能够对您有帮助的话,求给大大的赞。

helm是k8s的包管理工具,类似于centos的yum,k8s将管理的资源都抽象成api,并且推荐使用声明方式创建,修改,删除这些对象,每个 API 对象都通过一个 yaml 格式或者 json 格式的文本来声明。这带来的一个问题就是这些 API 对象声明文本的管理成本,每当我需要创建一个应用,都需要去编写一堆这样的声明文高耐件

helm就是管理这些api对象的工具,它把创建一个应用所需的所有 Kubernetes API 对象声明文件组合并打包在一起。并提供了仓库的机制便于分发共享,还支持模版变量替换,同时还有版本的概念,使之能够对一个应用进行版本的管理。

Helm chart 是用来封装 Kubernetes 原生应用程序的 YAML 文件,可以在你部署应用的时候自定义应用程序的一些 metadata,便与应用程序的分发。

Helm 和 chart 的主要作用是:

1.应用程序封装

2.版本管理

3.依赖检查

4.便于应用程序分发

Helm 可以安装本地或者远程的 chart,当 chart 安装到 Kubernetes 中后就会创建一个 release,每次更新该 chart 的配置并执行 helm upgrade, release 的瞎念数版本数就会加 1。同一个 chart 可以部署多次

下面我们将一步步创建一个 chart 来说明其组织结构。

首先使用 helm create mychart 创建一个名为 mychart 的示例,我们再使用 tree mychart 命令看一下 chart 的目录结构。

以上仅为 helm 为我们自动创建的目录结构,我们还可以在 templates 目录加其他 Kubernetes 对象的配置,比如 ConfigMap、DaemonSet 等。

我们查看下使用 helm create 命令自动生成的 templates/service.yaml 文件。

可以看到其中有很多{{ }} 包围的字段,这是使用的 Go template 创建的自定义字段,其中 mychart 开头的都是在 _helpers.tpl 中生成的定义。

例如 _helpers.tpl 中对 chart.fullname 的定义:

我们再看下 values.yaml 文件中有这样的一段配置:

在使用 helm install 或 helm update 时,会渲染 templates/service.yaml 文件中的 {{ .Values.service.type }} 和 {{ .Values.service.port }} 的值。

使用 Helm

Helm 常用命令如下:

安装 chart 的命令格式为:

helm install [NAME] [CHART] [flags]

示例:

其中:

myvalues.yaml:自定义变量配置文件;

myredis:release 名称;

./redis:本地的 chart 目录;

Helm chart 安装后会转化成 Kubernetes 中的资源对象磨首,生成一个 chart release,可以使用 helm list 命令查看。

关于 helm intsall 详细用法见: https://helm.sh/docs/helm/helm_install/ 。

要想升级 chart 可以修改本地的 chart 配置并执行:

使用 helm ls 的命令查看当前运行的 chart 的 release 版本,并使用下面的命令回滚到历史版本:

要想卸载 chart 可以使用下面的命令。

helm uninstall RELEASE_NAME [...] [flags]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12228917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存