用心打造
VPS知识分享网站

什么是Helm?2024年Helm安装使用指南

Helm 是一款功能强大的工具,可简化 Kubernetes 上应用程序的部署和管理。它充当Kubernetes的软件包管理器,就像 Linux 的 apt 或 yum 一样,允许用户定义、安装和升级最复杂的 Kubernetes 应用程序。借助 Helm,系统管理员和开发人员可以简化工作流程、降低复杂性并确保部署之间的一致性。 

管理大规模应用程序是一项重大挑战。Kubernetes 已成为容器编排的事实标准,但它也存在一些复杂性。Helm 通过提供一种将 Kubernetes 资源捆绑到单个包中的方法来解决这些问题,从而更轻松地共享和部署应用程序。本指南旨在向您介绍Helm,涵盖其安装、关键概念和实际用法,以便您可以开始在 Kubernetes 环境中利用其功能。 

什么是Helm?2024年Helm安装使用指南

什么是 Helm?

Helm是一个开源工具,旨在简化 Kubernetes 集群中应用程序的部署和管理。它充当 Kubernetes 的包管理器,提供一种标准化的方式来管理复杂的应用程序和服务。 

Helm 的定义和目的

Helm 使用“图表”(即预先配置的 Kubernetes 资源包)简化了 Kubernetes 应用程序的部署。这些图表使用户能够使用单个命令部署应用程序,从而确保一致性并降低出错风险。 

Helm 的主要特点

  • 包管理:Helm 允许用户使用图表定义、安装和升级 Kubernetes 应用程序,这些图表可以通过 Helm 存储库进行存储和共享。 
  • 模板:Helm 使用模板来定义 Kubernetes 清单,从而轻松定制部署。 
  • 版本控制:Helm 图表支持版本控制,使用户能够跟踪更改并在需要时回滚到以前的版本。 
  • 依赖管理:图表可以声明依赖关系,确保所有必需的服务都已正确安装和配置。 

安装 Helm

安装 Helm 的过程很简单,可以在各种平台上完成,包括 Linux、macOS 和 Windows。以下是如何在系统上开始使用 Helm。 

系统要求

在安装 Helm 之前,请确保您满足以下先决条件: 

– Kubernetes 集群(建议使用 1.16 或更高版本) 

– 安装并配置 kubectl 以与 Kubernetes 集群进行通信 

– curl 或 wget 用于下载 Helm 

不同平台的安装步骤 

以下所有步骤,无论哪个操作,都需要在终端中执行。 

对于 Linux 和 macOS,它是终端;对于 Windows,它是 PowerShell。 

 Linux

  1. 下载 Helm:

在终端中运行此命令,从其官方 GitHub 存储库下载 helm 安装脚本: 

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
  1. 运行安装脚本:
chmod 700 get_helm.sh
./get_helm.sh

macOS

  1. 使用 Homebrew:

打开终端并运行此命令以使用 Homebrew 安装 helm: 

brew install helm
  1. 或者,下载二进制文件:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 
chmod 700 get_helm.sh
./get_helm.sh

视窗

  1. 使用 Chocolatey:
choco install kubernetes-helm
  1. 使用 Scoop:
scoop install helm

验证安装

安装 Helm 后,请使用终端中的以下命令检查版本以验证安装: 

helm version

您应该看到类似以下内容的输出: 

version.BuildInfo{Version:"v3.x.x", GitCommit:"xxxxx", GitTreeState:"clean", GoVersion:"go1.xx.x"} 

了解 Helm Charts

Helm 图表可能是最重要的 Helm 功能。Helm 图表是描述一组相关 Kubernetes 资源的文件集合。了解 Helm 图表的结构和关键组件对于有效使用 Helm 管理应用程序非常重要。

Helm Chart 的结构

Helm 图表通常遵循标准目录结构,其中包括几个关键文件和目录:

mychart/
  Chart.yaml
  values.yaml
  charts/
  templates/

关键组件

  • Chart.yaml:这是 Helm chart 的主文件。它包含有关 chart 的元数据,例如其名称、版本和描述。 
apiVersion: v2
name: mychart
description: A Helm chart for Kubernetes
version: 0.1.0
  • values.yaml:此文件包含图表的默认配置值。用户可以在部署图表时覆盖这些值。 
replicaCount: 1
image:
  repository: myimage
  tag: latest
  • charts/:此目录包含图表的所有依赖项。依赖项是 Helm 图表本身,该图表依赖于它。 
  • templates/:此目录包含 Kubernetes 清单模板。这些模板根据 values.yaml 中提供的值以及任何其他用户指定的值呈现到 Kubernetes 清单中。 

  部署模板示例(“deployment.yaml”): 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Release.Name }}-myapp
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app: {{ .Release.Name }}-myapp
  template:
    metadata:
      labels:
        app: {{ .Release.Name }}-myapp
    spec:
      containers:
        - name: myapp
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"

了解这些组件可让您有效地创建和自定义 Helm 图表。图表为在 Kubernetes 上部署应用程序提供了一种可重复使用、可配置和可共享的包格式。通过使用模板和值,Helm 图表可以适应各种环境和要求,使其成为 Kubernetes 管理工具包中的强大工具。 

如何创建你的第一个 Helm Chart

创建第一个 Helm 图表是学习如何有效管理 Kubernetes 应用程序的激动人心的一步。本部分将指导您完成创建基本 Helm 图表和部署简单应用程序的过程。 

循序渐进指南

  1. 创建新的 Helm Chart

   使用 `helm create` 命令来搭建新的图表: 

helm create mychart

   该命令生成一个包含默认文件和目录的目录结构,包括“Chart.yaml”、“values.yaml”和“templates”目录。 

  1. 自定义Chart.yaml

   打开“Chart.yaml”文件并使用适合您的图表的元数据进行更新: 

apiVersion: v2
name: mychart
description: A Helm chart for a simple Kubernetes application
version: 0.1.0
  1. 编辑 values.yaml

   修改“values.yaml”文件以设置图表的默认值。例如: 

replicaCount: 2
image:
  repository: nginx
  tag: stable
  1. 在 templates/ 中创建 Kubernetes 清单

   在`templates`目录中,创建一个部署模板(`deployment.yaml`): 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Release.Name }}-nginx
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app: {{ .Release.Name }}-nginx
  template:
    metadata:
      labels:
        app: {{ .Release.Name }}-nginx
    spec:
      containers:
        - name: nginx
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
  1. 打包图表

   图表准备好后,使用“helm package”命令将其打包: 

helm package mychart

   此命令创建一个“.tgz”文件,它是图表的打包版本。 

示例项目

为了说明,让我们为 Nginx Web 服务器创建一个 Helm 图表: 

  1. 创建图表:
helm create nginx-chart
  1. 更新 Chart.yaml:
apiVersion: v2
name: nginx-chart
description: A Helm chart for Nginx
version: 0.1.0
  1. 编辑values.yaml:
replicaCount: 2
image:
  repository: nginx
  tag: stable
  1. 在 templates/ 中创建 deploy.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Release.Name }}-nginx
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app: {{ .Release.Name }}-nginx
  template:
    metadata:
      labels:
        app: {{ .Release.Name }}-nginx
    spec:
      containers:
        - name: nginx
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
  1. 部署图表:
helm install my-nginx nginx-chart

使用 Helm 管理应用程序

Helm 不仅简化了在 Kubernetes 上部署应用程序的过程,还使管理这些应用程序变得更加容易。本章介绍如何使用 Helm 安装、升级、回滚和管理应用程序版本。 

使用 Helm 安装应用程序

要使用 Helm 图表安装应用程序,请使用“helm install”命令,后跟发布名称和图表路径或名称: 

helm install my-release mychart/

– `my-release` 是你给这个安装实例起的名字。 

– `mychart/` 是您想要安装的图表的路径。 

例如安装上一章创建的“nginx-chart”: 

helm install my-nginx nginx-chart/

使用 Helm 升级应用程序

要将现有版本升级为图表的新版本或更新配置值,请使用“helm upgrade”命令: 

helm upgrade my-release mychart/

您还可以提供一个新的“values.yaml”文件或直接在命令中指定新值: 

helm upgrade my-release mychart/ --values new_values.yaml

或者 

helm upgrade my-release mychart/ --set replicaCount=3

回滚应用程序

如果升级出现问题,您可以使用“helm rollback”命令轻松回滚到以前的版本: 

helm rollback my-release 1

在此命令中,“1” 表示您要回滚到的修订版本号。Helm 会保留发布历史记录,允许您恢复到任何以前的状态。 

使用 Helm 管理应用程序发布

Helm 提供了几个命令来帮助管理和查看有关发布的信息: 

  • 列出所有版本:
  helm list
  • 获取有关特定版本的详细信息:
  helm status my-release
  • 卸载一个版本:
  helm uninstall my-release

使用这些命令,您可以控制应用程序的生命周期,确保部署顺利且易于管理。 Helm 的强大功能简化了维护应用程序的过程,使处理复杂的 Kubernetes 环境变得更加容易。 

Helm 存储库

Helm 存储库对于共享和分发 Helm 图表非常重要。Helm 存储库是一个简单的 HTTP 服务器,其中包含打包的图表和索引文件。使用 Helm 存储库,您可以查找和使用其他人创建的图表,也可以与社区分享您自己的图表。 

添加和使用 Helm 存储库

Helm 附带一个名为 Helm Hub 的默认存储库,其中聚合了来自各种来源的图表。但是,您可以添加其他存储库以访问更广泛的图表。 

  1. 添加 Helm 存储库:

   使用 `helm repo add` 命令添加新的存储库: 

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

在这个例子中,我们添加了包含许多流行图表的稳定存储库。 

  1. 更新存储库:

   添加存储库后,更新它们以获取最新的图表列表: 

helm repo update
  1. 搜索图表:

   使用“helm search repo”命令在添加的存储库中查找图表: 

helm search repo nginx

   此命令在添加的存储库中搜索与 Nginx 相关的所有图表。 

使用存储库中的图表

添加存储库并找到要使用的图表后,安装它就很简单了。例如,要从稳定存储库安装 Nginx 图表: 

helm install my-nginx stable/nginx

此命令使用默认值安装 Nginx 图表。您可以通过提供自己的值文件或使用“–set”标志覆盖特定值来自定义安装。 

结论

Helm 是一款功能强大的工具,它利用图表的概念简化了 Kubernetes 应用程序的管理,图表将多个 Kubernetes 资源捆绑到一个包中。通过使用 Helm,开发人员和系统管理员可以更高效、更一致地部署、升级和管理应用程序。 

在本指南中,我们介绍了 Helm 的基本方面,从了解它是什么以及如何安装它,到创建自己的 Helm 图表并使用它们来管理应用程序。我们还探讨了如何利用 Helm 存储库来查找和部署各种预配置的图表,从而进一步简化 Kubernetes 环境的管理。 

赞(0)
未经允许不得转载;国外VPS测评网 » 什么是Helm?2024年Helm安装使用指南
分享到