开发者社区> 问答> 正文

Helm是什么?

已解决

Helm是什么?

展开
收起
詹姆斯邦德00 2022-10-19 16:52:28 416 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    Helm 是Kubernetes 生态系统中的一个软件包管理工具,类似于类似于Ubuntu 中的apt、CentOS 中的yum 等。它可以被用于自动创建、打包、配置和部署应用程序和服务到Kubernetes 集群。

    Kubernetes 为用户提供了自动部署、扩展和管理容器化应用程序的能力,然而用户部署在Kubernetes 集群上的应用可能会非常复杂,一个典型的应用(以SREWorks为例)通常会有一系列对象进行内部交互来使得程序正常运转。

    首先我们需要Deployment 用于部署我们想要运行的pods,例如Mysql 数据库;StorageClass 用于动态分配存储卷;Persistent Volume(PV)用于储存数据库;Service 用于指定pod 的访问策略使得外部可以访问pod 的服务;Job 用于执行任务保证指定数量的pods 部署成功……

    image.png

    在Helm出现之前,每个对象都需要一个单独的yaml文件来配置,然后通过kubeclt apply 逐一创建这些对象。如果需要对其中的一些内容进行更改,必须找到对应的yaml 文件并在其中找到对应的属性;而如果想要升级其中的一些组件,也要仔细地编辑多个文件,防止错误和遗漏;当要删除这个应用程序时,也要手动删除其对应的所有组件……

    Kubernetes 并不是从“应用程序”的层面来管理集群中的各个组件,它只是将用户提交上去的yaml 保存在集群中并各自运行,实际上它并不知道用户声明的各个对象,例如Job、Service、StorageClass、Deployment 等,是同一个应用程序下不同的组成成分。

    当应用较为复杂的时候,要记住变量的位置并人工执行操作是一件冗余且复杂的事,并且会给多人协作开发应用增加难度。

    在这样的基础上,Helm应运而生,为开发人员提供了模块化的应用管理工具,降低了Kubernetes 用户的工作量和工作复杂度。

    以上内容摘自《SREWorks 云原生数智运维工程实践》电子书,点击https://developer.aliyun.com/ebook/download/7784可下载完整版。

    2022-10-19 17:36:36
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
Kubernetes Helm 立即下载
Future of CI_CD with Tekton and kubernetes 立即下载
低代码开发师(初级)实战教程 立即下载