相关组件
helm 是一个命令行工具,用于本地开发及管理chart,chart仓库管理等。
helm 本质就是一个K8s包管理器。
优点
- 简化部署 :Helm允许使用单个命令轻松部署和管理应用程序,从而简化了整个部署过程;
- 高度可配置:Helm Charts提供了高度可配置的选项,可以轻松自定义和修改应用程序的部署配置;
- 版本控制 :Helm允许管理应用程序的多个版本,从而轻松实现版本控制和回滚;
- 模板化:Helm Charts使用YAML模板来定义Kubernetes对象的配置,从而简化了配置过程,并提高了可重复性和可扩展性;
- 应用程序库:Helm具有应用程序库的概念,可以轻松地共享和重用Helm Charts,从而简化了多个应用程序的部署和管理;
- 插件系统:Helm拥有一个强大的插件系统,允许您扩展和定制Helm的功能,以满足特定的需求和要求。
工作流程(v3)
图片
开发者首先创建并编辑chart的配置;
接着打包并发布至Helm的仓库(Repository);
当管理员使用helm命令安装时,相关的依赖会从仓库下载;
接着helm会根据下载的配置部署资源至k8s;
Tiller (helm3 已经移除 helm直接和k8s交互)
Helm 的服务端。Tiller 负责接收 Helm 的请求,与 k8s 的 apiserver 交互,根据chart 来生成一个 release 并管理 release 部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求,并根据 Chart 生成 Kubernetes 的部署文件( Helm 称为 Release ),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。
chart
Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件。
release
使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。
Repoistory
Helm chart 的仓库,Helm 客户端通过 HTTP 协议来访问存储库中 chart 的索引文件和压缩包 Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。
流程相关
Chart Install 过程:
Chart Update过程:
Chart Rollback过程:
安装
github 地址:
Helm 客户端
k8s所有节点
主节点
仓库配置
使用
安装一个nginx:
图片
values.yaml #给模板文件使用的变量。
修改values.yam 里的service的type为 NodePort。