Skip to content

1. 什么是 Helm

1.1 概述

Helm 是 Kubernetes 应用程序的包管理器,和redhat中yum 管理包类似.

1.2 helm 发展

Helm 2 主要采用客户端-服务器架构,由客户端和集群内服务器组成

image-20240709143039425

  • Tiller Server:Helm 通过安装在 Kubernetes 集群中的 Tiller Server 管理 Kubernetes 应用程序。 Tiller 与 Kubernetes API 服务器交互以安装、升级、查询和删除 Kubernetes 资源。
  • Helm 客户端:Helm 为用户提供了使用 Helm Charts 的命令行界面。它负责与 Tiller 服务器交互以执行安装、升级和回滚chart等各种操作

Helm 3 2019年发布,已转向完全仅客户端的架构,其中集群内服务器已被删除:

image-20240709143055848

Helm 3 中的客户端工作方式几乎相同,但直接与 Kubernetes API 服务器而不是 Tiller 服务器交互。这一举措简化了 Helm 的架构,并使其能够利用 Kubernetes 用户集群的安全性.

1.3 helm特点

  • 简化部署 :Helm允许使用单个命令轻松部署和管理应用程序,从而简化了整个部署过程;
  • 高度可配置:Helm Charts提供了高度可配置的选项,可以轻松自定义和修改应用程序的部署配置;
  • 版本控制 :Helm允许管理应用程序的多个版本,从而轻松实现版本控制和回滚;
  • 模板化:Helm Charts使用YAML模板来定义Kubernetes对象的配置,从而简化了配置过程,并提高了可重复性和可扩展性;
  • 应用程序库:Helm具有应用程序库的概念,可以轻松地共享和重用Helm Charts,从而简化了多个应用程序的部署和管理;
  • 插件系统:Helm拥有一个强大的插件系统,允许您扩展和定制Helm的功能,以满足特定的需求和要求。

1.4 架构图v3

image-20240708230102875