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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 【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集群中使用它来简化您的工作流程。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
计算巢如何使用fluxcd在ack部署helm chart
为支持helm服务运维管理功能,现在改用fluxcd的方式进行helm chart部署,这里计算巢对fluxcd进行部署helm chart的过程进行了封装,封装成了ROS公共模块MODULE::ACS::ComputeNest::FluxOciHelmDeploy,下面将主要介绍下怎么使用这个模块在计算巢中进行Helm Chart的部署。
|
存储 Kubernetes 容器
百度搜索:蓝易云【Kubernetes使用helm部署NFS Provisioner】
现在,你已经成功使用Helm部署了NFS Provisioner,并且可以在Kubernetes中创建使用NFS存储的PersistentVolumeClaim。
295 10
|
Kubernetes 应用服务中间件 Linux
helm安装和使用-通过helm部署k8s应用
helm安装和使用-通过helm部署k8s应用
|
存储 Kubernetes API
【K8S系列】第十一讲:包管理神器-Helm
【K8S系列】第十一讲:包管理神器-Helm
409 0
|
缓存 Kubernetes 应用服务中间件
k8s学习--helm的详细解释及安装和常用命令
k8s学习--helm的详细解释及安装和常用命令
393 0
k8s学习--helm的详细解释及安装和常用命令
|
Kubernetes 关系型数据库 MySQL
k8s学习--利用helm部署应用mysql,加深helm的理解
k8s学习--利用helm部署应用mysql,加深helm的理解
943 0
|
存储 Kubernetes 关系型数据库
Helm 简介:Kubernetes 的包管理器
Helm 简介:Kubernetes 的包管理器
253 2
|
Kubernetes 容器
Kubernetes(K8S) helm chart
Kubernetes(K8S) helm chart
108 1
|
Kubernetes Linux Docker
Kubernetes(K8S) helm 安装
Kubernetes(K8S) helm 安装
412 1
|
存储 Linux 数据库
k8s-dashboard、helm
k8s-dashboard、helm
527 1

热门文章

最新文章

推荐镜像

更多