第一章 Helm 详细介绍

简介: 第一章 Helm 详细介绍

1.Helm 是什么

       Helm 是 Kubernetes 的包管理器。包管理器类似于我们在 Ubuntu 中使用的apt、Centos中使用的yum 或者Python中的 pip 一样,能快速查找、下载和安装软件包。

       Helm 由客户端组件 helm 和服务端组件 Tiller 组成, 能够将一组K8S资源打包统一管理, 是查找、共享和使用为Kubernetes构建的软件的最佳方式。

2.Helm 解决了哪些问题

       在 Kubernetes中部署一个可以使用的应用,需要涉及到很多的 Kubernetes 资源的共同协作。

       比如你安装一个 WordPress 博客,用到了一些 Kubernetes (下面全部简称k8s)的一些资源对象,包括 Deployment 用于部署应用、Service 提供服务发现、Secret 配置 WordPress 的用户名和密码,可能还需要 pv 和 pvc 来提供持久化服务。

       并且 WordPress 数据是存储在mariadb里面的,所以需要 mariadb 启动就绪后才能启动 WordPress。这些 k8s 资源过于分散,不方便进行管理,直接通过 kubectl 来管理一个应用,你会发现这十分蛋疼。

总结以上,我们在 k8s 中部署一个应用,通常面临以下几个问题:

1.如何统一管理、配置和更新这些分散的 k8s 的应用资源文件

2.如何分发和复用一套应用模板

3.如何将应用的一系列资源当做一个软件包管理

3.Helm 组件介绍

Helm 包含两个组件:

       分别是 helm 客户端 Tiller 服务器

       helm 是一个命令行工具,用于本地开发及管理chart,chart仓库管理等

       Tiller 是 Helm 的服务端。Tiller 负责接收 Helm 的请求,与 k8s 的 apiserver 交互,根据chart 来生成一个 release 并管理 release

chart Helm的打包格式叫做chart,所谓chart就是一系列文件, 它描述了一组相关的 k8s 集群资源

release 使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release

Repoistory Helm chart 的仓库,Helm 客户端通过 HTTP 协议来访问存储库中 chart 的索引文件和压缩包

4.Helm 原理

下图描述了 Helm 的几个关键组件 Helm(客户端)、Tiller(服务器)、Repository(Chart 软件仓库)、Chart(软件包)之间的关系以及它们之间如何通信

5.helm 组件通信

1.创建release

helm 客户端从指定的目录或本地tar文件或远程repo仓库解析出chart的结构信息

helm 客户端指定的 chart 结构和 values 信息通过 gRPC 传递给 Tiller

Tiller 服务端根据 chart 和 values 生成一个 release

Tiller 将install release请求直接传递给 kube-apiserver

2.删除release

helm 客户端从指定的目录或本地tar文件或远程repo仓库解析出chart的结构信息

helm 客户端指定的 chart 结构和 values 信息通过 gRPC 传递给 Tiller

Tiller 服务端根据 chart 和 values 生成一个 release

Tiller 将delete release请求直接传递给 kube-apiserver

3.更新release

helm 客户端将需要更新的 chart 的 release 名称 chart 结构和 value 信息传给 Tiller

Tiller 将收到的信息生成新的 release,并同时更新这个 release 的 history

Tiller 将新的 release 传递给 kube-apiserver 进行更新

4.chart 的基本结构

Helm包由以下三个部分组成:

  1. Chart:一个Helm包,包含在Kubernetes集群中运行应用程序、工具或服务所需的所有资源定义,类似于一个Apt dpkg包或一个Yum RPM包。
  2. Repository:收集和共享chart的地方,类似于一个仓库,用于发布和存储chart。
  3. Release:在Kubernetes集群中运行的chart的实例,一个chart可以在一个Kubernetes集群上部署多次,即可以有多个release。
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
18天前
|
Kubernetes NoSQL Redis
第五章 使用Helm部署一个应用
第五章 使用Helm部署一个应用
48 2
|
6月前
|
Kubernetes 关系型数据库 MySQL
Helm入门(一篇就够了)
Helm入门(一篇就够了)
128 0
|
存储 Kubernetes 前端开发
helm 简介及基本使用
helm 简介及基本使用
2331 0
helm 简介及基本使用
|
17天前
|
存储 NoSQL Redis
Helm安装集群整理
Helm安装集群整理
|
18天前
|
Kubernetes 关系型数据库 MySQL
第三章 Helm常用命令
第三章 Helm常用命令
44 0
|
18天前
|
Kubernetes 监控 API
第一章 Kubernetes 简介
第一章 Kubernetes 简介
31 3
|
18天前
|
Docker 容器
containerd快速安装指南🚀
本指南旨在提供一个简洁有效的方法来安装`containerd`。我们将通过一份易于理解的脚本步骤,指导您完成安装🔧。请根据您的实际需求,适当调整`containerd`版本及其相关依赖。
|
18天前
|
存储 Kubernetes 监控
KubeSphere平台安装系列之一【Kubernetes上安装KubeSphere(亲测--实操完整版)】(1/3)
KubeSphere平台安装系列之一【Kubernetes上安装KubeSphere(亲测--实操完整版)】(1/3)
49 0
|
9月前
|
关系型数据库 MySQL Perl
入门Helm(2)
入门Helm(2)
48 2
|
10月前
|
存储 Kubernetes 容器
入门Helm
入门Helm
216 2

热门文章

最新文章