Helm 是 Kubernetes 的包管理工具,用于定义、安装和升级 Kubernetes 应用程序。Helm 通过 Helm Charts 管理 Kubernetes 资源。以下是关于 Helm 包管理与部署的详细指南。

 

安装 Helm

在使用 Helm 之前,需要先安装 Helm 客户端。可以从 Helm 官方网站 下载适用于不同操作系统的安装包。

 

基本概念

使用 Helm 部署应用

 

1. 添加 Helm 仓库

首先需要添加一个 Helm 仓库,例如官方的稳定仓库:

helm repo add stable https://charts.helm.sh/stable
helm repo update

 

2. 查找 Chart

可以使用 helm search repo 命令查找你需要的 Chart:

helm search repo nginx

 

3. 安装 Chart

使用 helm install 命令安装 Chart:

helm install my-nginx stable/nginx-ingress

 其中,my-nginx 是 Release 的名称,stable/nginx-ingress 是 Chart 的名称。

 

4. 查看 Release

安装完成后,可以查看 Release 的状态:

helm list

 

5. 升级 Release

如果需要升级 Release,可以使用 helm upgrade 命令:

helm upgrade my-nginx stable/nginx-ingress

 

6. 卸载 Release

如果需要卸载 Release,可以使用 helm uninstall 命令:

helm uninstall my-nginx

 

创建自定义 Helm Chart

除了使用现成的 Chart,还可以创建自定义的 Chart。

 

1. 创建 Chart 骨架

使用helm create命令生成一个 Chart 骨架:

helm create mychart

 这将创建一个包含默认目录结构和模板文件的目录 mychart

 

2. 编辑 Chart 文件

mychart 目录中,编辑 Chart.yamlvalues.yaml 和模板文件以满足你的需求。

例如,编辑 values.yaml

replicaCount: 2
image:
  repository: nginx
  tag: stable
  pullPolicy: IfNotPresent
service:
  type: ClusterIP
  port: 80

 

3. 部署自定义 Chart

在完成编辑后,可以使用 helm install 部署自定义 Chart:

helm install my-release ./mychart

 

典型目录结构

一个典型的 Helm Chart 目录结构如下:

mychart/
  Chart.yaml          # Chart 元数据
  values.yaml         # 默认配置值
  charts/             # 依赖的 Chart
  templates/          # 模板文件
  .helmignore         # 忽略文件

 

常用命令总结

  • 添加仓库helm repo add [name] [url]
  • 更新仓库helm repo update
  • 查找 Charthelm search repo [keyword]
  • 安装 Charthelm install [release-name] [chart-name]
  • 升级 Releasehelm upgrade [release-name] [chart-name]
  • 卸载 Releasehelm uninstall [release-name]
  • 查看 Releasehelm list

     

总结

Helm 提供了强大的包管理功能,使得 Kubernetes 应用的部署和管理变得更加简单高效。通过使用 Helm Charts,开发者可以轻松地定义、安装和升级 Kubernetes 应用,确保应用的一致性和可重复性。