Skip to content

Commit

Permalink
helm
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaoheigou committed Nov 23, 2024
1 parent 87c2cd9 commit 274cbff
Show file tree
Hide file tree
Showing 7 changed files with 2,657 additions and 3 deletions.
7 changes: 6 additions & 1 deletion SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,12 @@
***

* [helm 教程](helm-jiao-cheng/README.md)
* [01](helm-jiao-cheng/01.md)
* [01-快速入门](helm-jiao-cheng/01.md)
* [02-如何使用](helm-jiao-cheng/02.md)
* [03-制作chart](helm-jiao-cheng/03.md)
* [04-chart学习](helm-jiao-cheng/04.md)
* [05-chart hook](helm-jiao-cheng/05.md)
* [06-chart 指南](helm-jiao-cheng/06.md)

## jenkins 教程

Expand Down
97 changes: 95 additions & 2 deletions helm-jiao-cheng/01.md
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` ,这将删除与该版本相关的所有资源以及发布历史记录。
Loading

0 comments on commit 274cbff

Please sign in to comment.