Helm基础

Helm基础

简介

Helm是 k8s 的一个管理工具,用来简化 k8s 应用的部署和管理,类似于 Ubuntu 中的 APT 或 CentOS 中的 YUM。Helm 提供以下能力:

  • 创建新的 charts
  • 将 charts 打包成 tgz 文件
  • 与 chart 仓库交互
  • 安装和卸载 Kubernetes 的应用
  • 管理使用 Helm 安装的 charts 的生命周期

基本概念

Helm 有如下几个基本概念:

  • Chart: 是 Helm 管理的安装包,里面包含需要部署的安装包资源。可以把 Chart 比作 CentOS yum 使用的 rpm 文件。每个 Chart 包含下面两部分:
    • 包的基本描述文件 Chart.yaml
    • 放在 templates 目录中的一个或多个 Kubernetes manifest 文件模板
  • Config:包含了应用发布配置信息
  • Release:是 chart 的部署实例,一个 chart 在一个 Kubernetes 集群上可以有多个 release,即这个 chart 可以被安装多次
  • Repository:chart 的仓库,用于发布和存储 chart

Helm 把 Kubernetes 资源(比如 deployments、services 或 ingress 等) 打包到一个 chart 中,而 chart 被保存到 chart 仓库。通过 chart 仓库可用来存储和分享 chart。Helm 使发布可配置,支持发布应用配置的版本管理,简化了 Kubernetes 部署应用的版本控制、打包、发布、删除、更新等操作。

架构

loading-ag-1128

Helm 由两部分组成,客户端 helm 和服务端 tiller。

  • Tiller:运行在 Kubernetes 集群上,监听 helm client 请求,通过 chart 构建发布,安装 chart 到 k8s 集群,管理已发布 chart 的升级和卸载。
  • Helm:是一个命令行工具,可在本地运行,一般运行在 CI/CD Server 上。

语法

  • 多行字符串

操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ helm repo update
$ helm create hello-svc                                #创建模板
$ cd ./hello-svc
$ helm install --dry-run --debug ./             #测试
$ helm install ./                                             #安装
$ helm list                                                        #查看
$ helm delete hello-svc                                    #删除

#打包, 当前目录生成tgz文件
$ helm package ./
  1. https://feisky.gitbooks.io/kubernetes/apps/helm.html
updatedupdated2024-08-252024-08-25