-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
87c2cd9
commit 274cbff
Showing
7 changed files
with
2,657 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,96 @@ | ||
# 01 | ||
# 1. 概述 | ||
|
||
xxxx | ||
**[Helm](https://helm.sh/) 是 Kubernetes 应用程序的包管理器**。它帮助我们为最复杂的 Kubernetes 应用程序创建包、安装、配置、部署和升级。由于 Helm 提供了一种简单且可重复的方法来打包和分发[Kubernetes 应用程序](https://middleware.io/blog/kubernetes-monitoring/),因此可以轻松简化工作负载的[CI/CD 管道](https://middleware.io/blog/what-is-a-ci-cd-pipeline/)。 | ||
|
||
在过去的几年里,Kubernetes 取得了巨大的发展,支持它的生态系统也是如此。近日,Helm 获得了[云原生计算基金会(CNCF)](https://www.cncf.io/)的毕业资格,这表明它在 Kubernetes 用户中的受欢迎程度越来越高。 | ||
|
||
# 2. helm 架构 | ||
|
||
![image](https://github.com/user-attachments/assets/05750704-38cb-4d8d-9eb8-bc38e2c4e3f1) | ||
|
||
Helm 3 相比于 Helm2 已**转向完全仅客户端的架构**,**直接与 Kubernetes API 服务器而不是 Tiller 服务器交互**。这一举措简化了 Helm 的架构,并使其能够利用 Kubernetes 用户集群的安全性。 | ||
|
||
# 3. Helm Chart 是什么 | ||
|
||
Helm 使用 “chart” 来打包应用程序的所有必要资源和配置。 Helm chart 就像在 Kubernetes 上部署任何应用程序的蓝图。 | ||
|
||
它包含运行我们的应用程序所需的所有 Kubernetes 资源 YAML 清单文件以及组织在特定目录结构中的一些与 helm 相关的文件。它使用基于 Go 模板的模板系统从图表中呈现 Kubernetes 清单。 | ||
|
||
简而言之,Helm 有一些预定义的 k8s 模板,它传递我们在文件中定义的值并将资源部署到集群上。 | ||
|
||
![image](https://github.com/user-attachments/assets/121991fc-cd91-4c26-a0e5-fcb09c1ce261) | ||
|
||
# 4.安装 | ||
|
||
下载 Helm 客户端的二进制版本。您可以使用像`homebrew`这样的工具,或者查看[官方发布页面](https://github.com/helm/helm/releases)。有关更多详细信息或其他选项,请参阅[安装指南](https://helm.sh/docs/intro/install/)。 | ||
|
||
# 5.先决条件 | ||
|
||
1. 一个 Kubernetes 集群 | ||
2. 决定将哪些安全配置应用于您的安装(如果有) | ||
3. 安装和配置 Helm。 | ||
|
||
# 6. 初始化 helm chart repository | ||
|
||
准备好 Helm 后,您可以添加图表存储库。检查[Artifact Hub](https://artifacthub.io/packages/search?kind=0)以获得可用的 Helm 图表存储库。 | ||
|
||
```shell | ||
$ helm repo add bitnami https://charts.bitnami.com/bitnami | ||
``` | ||
|
||
安装后,您将能够列出可以安装的 chart: | ||
|
||
```shell | ||
$ helm search repo bitnami | ||
NAME CHART VERSION APP VERSION DESCRIPTION | ||
bitnami/bitnami-common 0.0.9 0.0.9 DEPRECATED Chart with custom templates used in ... | ||
bitnami/airflow 8.0.2 2.0.0 Apache Airflow is a platform to programmaticall... | ||
bitnami/apache 8.2.3 2.4.46 Chart for Apache HTTP Server | ||
bitnami/aspnet-core 1.2.3 3.1.9 ASP.NET Core is an open-source framework create... | ||
# ... and many more | ||
``` | ||
|
||
# 7. 安装示例 chart | ||
|
||
要安装 chart,您可以运行`helm install`命令。 Helm 有多种查找和安装 chart 的方法,但最简单的是使用`bitnami` chart。 | ||
|
||
```shell | ||
$ helm repo update # Make sure we get the latest list of charts | ||
$ helm install bitnami/mysql --generate-name | ||
NAME: mysql-1612624192 | ||
LAST DEPLOYED: Sat Feb 6 16:09:56 2021 | ||
NAMESPACE: default | ||
STATUS: deployed | ||
REVISION: 1 | ||
TEST SUITE: None | ||
NOTES: ... | ||
``` | ||
|
||
在上面的示例中, `bitnami/mysql` chart已发布,我们新版本的名称是`mysql-1612624192` 。 | ||
|
||
通过运行`helm show chart bitnami/mysql`您可以简单了解此 MySQL chart 的功能。或者您可以运行`helm show all bitnami/mysql`来获取有关 chart 的所有信息。 | ||
|
||
每当您安装 chart 时,都会创建一个新版本。因此,一个 chart 可以多次安装到同一个集群中。并且每个都可以独立管理和升级。 | ||
|
||
`helm install`命令是一个非常强大的命令,具有许多功能。要了解更多信息,请查看[Helm 使用指南](https://helm.sh/docs/intro/using_helm/) | ||
|
||
# 8. release | ||
|
||
使用 Helm 可以轻松查看已发布的内容: | ||
|
||
```shell | ||
$ helm list | ||
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION | ||
mysql-1612624192 default 1 2021-02-06 16:09:56.283059 +0100 CET deployed mysql-8.3.0 8.0.23 | ||
``` | ||
|
||
# 9. 卸载 release | ||
|
||
要卸载版本,请使用`helm uninstall`命令: | ||
|
||
```shell | ||
$ helm uninstall mysql-1612624192 | ||
release "mysql-1612624192" uninstalled | ||
``` | ||
|
||
这将从 Kubernetes 中卸载`mysql-1612624192` ,这将删除与该版本相关的所有资源以及发布历史记录。 |
Oops, something went wrong.