在Kubernetes中,helm是什么?如何使用?

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 【4月更文挑战第9天】在Kubernetes中,helm是什么?如何使用?

在Kubernetes(K8S)生态系统中,Helm是一个强大程序部署和管理的包管理工具的工具,它可以简化应用程序的部署、管理和升级过程。本文将介绍Helm的基本概念、作用以及如何在Kubernetes集群中使用它。

什么是Helm?

Helm是一个Kubernetes的包管理器,类似于Linux系统中的APT或YUM。它允许您定义、安装和升级Kubernetes应用程序的预定义包,这些包通常称为charts。Helm旨在简化Kubernetes应用程序的部署和管理过程,使其更加可重复和可维护。

Helm架构

Helm 架构由 Helm 客户端、Tiller 服务器端和 Chart 仓库组成。Tiller 部署在 Kubernetes 中,Helm 客户端通过与 Tiller 通信来管理 Chart 的部署和升级。它从 Chart 仓库中获取 Chart 安装包,并将其安装到 Kubernetes 集群中。

Helm的核心概念

在深入了解如何使用Helm之前,我们需要了解几个Helm的核心概念:

Chart

Chart是Helm的打包格式,它包含了一组描述Kubernetes应用程序的资源模板文件,以及一些可配置的参数。Chart可以被认为是一个可复用的应用程序模板,它可以快速部署到Kubernetes集群中。

Release

Release是Chart的一个特定实例,它在Kubernetes集群中运行。每个Release都有一个唯一的名称,它可以通过Helm进行部署、升级或删除。

Repository

Repository是一组打包好的Chart的存储位置,类似于软件包管理系统中的软件源。Helm允许您从一个或多个仓库中查找、下载和安装Chart。

如何使用Helm?

现在让我们来看一下如何使用Helm来管理Kubernetes应用程序。

安装Helm

Helm提供了不通的安装方式,其中包括二进制方式、脚本安装、包管理器安装等。本案例中,我采用脚本方式安装,执行如下命令,其他方式安装方式,请查阅官网文档

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

执行上述代码后,通过执行helm version,输出如下图,说明Helm安装成功了。

添加Chart仓库

Helm使用Chart仓库来查找可用的Chart。您可以使用以下命令添加一个Chart仓库:

helm repo add <repository-name> <repository-url>

而Artifact Hub 是一个用于查找、安装和共享 Helm 图表的在线仓库。要在 Helm 中添加 Artifact Hub 作为仓库,你可以使用helm repo add命令,如下:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

bitnami:是为该仓库起的一个名字

然后,再次通过下面的命令查看仓库情况,如下:

controlplane $ helm repo list
NAME    URL                               
bitnami https://charts.bitnami.com/bitnami
controlplane $

搜索并安装Chart

一旦您添加了仓库,您可以使用helm search命令搜索可用的Chart:

helm search repo <keyword>

不知道helm命令的具体用法可以通过helm -h查看帮助文档

例如,如果您想要查找MySQL的Chart,您可以执行:

helm search repo mysql

执行上述的命令,它会在仓库中查找关键为mysql的Chart。然后把结果返回给终端,如下图

一旦找到您想要的Chart,您可以使用helm install命令将其部署到Kubernetes集群中:

helm install <release-name> <repository-name>/<chart-name>

例如,安装一个MySQL服务,执行如下命令

helm install my-mysql bitnami/mysql

执行上述命令后,成功部署会输入如下信息:

可以根据提示,执行下面的命令获取MySQL的root密码

kubectl get secret --namespace default my-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d

管理Release

一旦Chart被部署为Release,您可以使用Helm来管理它。例如,您可以使用helm list命令列出所有已部署的Releases:

controlplane $ helm list 
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
my-mysql        default         1               2024-04-08 12:00:44.864307773 +0000 UTC deployed        mysql-10.1.1    8.0.36

您还可以使用helm upgradehelm uninstall命令来升级和删除Release

controlplane $ helm uninstall my-mysql 
release "my-mysql" uninstalled
controlplane $

写到最后

在Kubernetes中,Helm是一个极其有用的工具,它简化了应用程序的部署和管理过程。通过使用预定义的Chart,您可以快速、可重复地部署应用程序,并轻松进行升级和管理。希望本文能够帮助您了解Helm的基本概念,并开始在Kubernetes集群中使用它来简化您的工作流程。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6月前
|
运维
计算巢如何使用fluxcd在ack部署helm chart
为支持helm服务运维管理功能,现在改用fluxcd的方式进行helm chart部署,这里计算巢对fluxcd进行部署helm chart的过程进行了封装,封装成了ROS公共模块MODULE::ACS::ComputeNest::FluxOciHelmDeploy,下面将主要介绍下怎么使用这个模块在计算巢中进行Helm Chart的部署。
|
6月前
|
存储 Kubernetes 容器
百度搜索:蓝易云【Kubernetes使用helm部署NFS Provisioner】
现在,你已经成功使用Helm部署了NFS Provisioner,并且可以在Kubernetes中创建使用NFS存储的PersistentVolumeClaim。
205 10
|
Kubernetes 应用服务中间件 Linux
helm安装和使用-通过helm部署k8s应用
helm安装和使用-通过helm部署k8s应用
|
存储 Kubernetes API
【K8S系列】第十一讲:包管理神器-Helm
【K8S系列】第十一讲:包管理神器-Helm
260 0
|
1月前
|
缓存 Kubernetes 应用服务中间件
k8s学习--helm的详细解释及安装和常用命令
k8s学习--helm的详细解释及安装和常用命令
k8s学习--helm的详细解释及安装和常用命令
|
1月前
|
Kubernetes 关系型数据库 MySQL
k8s学习--利用helm部署应用mysql,加深helm的理解
k8s学习--利用helm部署应用mysql,加深helm的理解
173 0
|
3月前
|
存储 Kubernetes 关系型数据库
Helm 简介:Kubernetes 的包管理器
Helm 简介:Kubernetes 的包管理器
110 2
|
3月前
|
Kubernetes 容器
Kubernetes(K8S) helm chart
Kubernetes(K8S) helm chart
30 1
|
3月前
|
Kubernetes Linux Docker
Kubernetes(K8S) helm 安装
Kubernetes(K8S) helm 安装
93 1
|
4月前
|
存储 Linux 数据库
k8s-dashboard、helm
k8s-dashboard、helm
93 1