跳至正文

TECHNICAL KNOWLEDGE / 技术栈

从架构思路,到实现细节。

技术选型、工程实践与部署记录,逐步展开来看。

沟通你的技术问题 ↗

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

 

安装 Helm

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

 

基本概念

  • Chart:Helm 的打包格式,包含了创建一个 Kubernetes 应用的所有必要资源定义。
  • Release:Chart 的一个运行实例。一个 Chart 可以被安装多次,每次安装都会创建一个新的 Release。

     

使用 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.yaml、values.yaml 和模板文件以满足你的需求。

  • Chart.yaml:包含 Chart 的元数据,如名称、版本等。
  • values.yaml:默认配置值,可以在安装时通过 --values 或 --set 覆盖。
  • templates/:包含 Kubernetes 资源的模板文件。

     

例如,编辑 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
  • 查找 Chart:helm search repo [keyword]
  • 安装 Chart:helm install [release-name] [chart-name]
  • 升级 Release:helm upgrade [release-name] [chart-name]
  • 卸载 Release:helm uninstall [release-name]
  • 查看 Release:helm list

     

总结

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