第一章 Helm 详细介绍

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 第一章 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。
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
6月前
|
Kubernetes NoSQL Redis
第五章 使用Helm部署一个应用
第五章 使用Helm部署一个应用
146 2
|
11月前
|
Kubernetes 关系型数据库 MySQL
Helm入门(一篇就够了)
Helm入门(一篇就够了)
279 0
|
存储 Kubernetes Linux
helm 简介及基本使用
helm 简介及基本使用
2779 0
helm 简介及基本使用
|
1月前
|
应用服务中间件 nginx Perl
|
3月前
|
Kubernetes 容器
在K8S中,helm是什么?如何使用?
在K8S中,helm是什么?如何使用?
|
6月前
|
Kubernetes 关系型数据库 MySQL
第三章 Helm常用命令
第三章 Helm常用命令
191 0
|
6月前
|
Docker 容器
containerd快速安装指南🚀
本指南旨在提供一个简洁有效的方法来安装`containerd`。我们将通过一份易于理解的脚本步骤,指导您完成安装🔧。请根据您的实际需求,适当调整`containerd`版本及其相关依赖。
|
6月前
|
存储 Kubernetes 监控
KubeSphere平台安装系列之一【Kubernetes上安装KubeSphere(亲测--实操完整版)】(1/3)
KubeSphere平台安装系列之一【Kubernetes上安装KubeSphere(亲测--实操完整版)】(1/3)
105 0
|
关系型数据库 MySQL Perl
入门Helm(2)
入门Helm(2)
81 2
|
存储 Kubernetes 容器
入门Helm
入门Helm
286 2
下一篇
无影云桌面