Loading... ## 前言 [Helm的官方网站](https://helm.sh/)、[Helm的github地址](https://github.com/helm/helm) > 在没有使用Helm之前,向kubernetes部署应用,我们依次需要编写deployment、service、ingress等yaml文件,然后还需要依次进行部署,步骤比较繁琐。 > > 随着项目的微服务化,复杂的应用在容器中部署以及管理显得较为复杂。因此Helm通过打包的方式生成Char模板,然后install Char模板生成release,支持发布的版本管理和控制,很大程度上简化了kubernetes应用的部署和管理。 ### Helm简介 > Helm的本质就是让k8s的应用管理(Deployment、Service)可配置,能够动态生成。通过动态生成k8s资源清单文件,然后调用kubectl命令自动执行k8s资源部署。 > > 我们可以将Helm看作Kubernetes下的apt-get/yum。Helm是Deis 开发的一个用于kubernetes的包管理器。 > > 每个包称为一个Chart,一个Chart是一个目录(一般情况下会将目录进行打包压缩,形成name-version.tgz格式的单一文件,方便传输和存储)。 > > 对于应用发布者而言,可以通过Helm打包应用,管理应用依赖关系,管理应用版本并发布应用到软件仓库。 > > 对于使用者而言,使用Helm后不用需要了解Kubernetes的yaml语法并编写应用部署文件,可以通过Helm下载并在kubernetes上安装需要的应用,同时进行少量的配置即可。 > > 除此以外,Helm还提供了kubernetes上的软件部署,删除,升级,回滚应用的强大功能。 > > Helm还可以结合Jenkins进行CI、CD进行自动化、流水线构建项目,可以将我们大量重复的步骤省略,节约时间。 Helm的作用有以下几点: - 快速安装常用应用:许多大公司都有helm仓库,为我们提供了许多优质的应用,可以直接拉取安装,如快速部署Redis集群、安装Jenkins等。 - 多环境部署:通常我们需要多套环境,如开发环境、测试环境、生产环境等,helm可以通模板+变量的形式实现快速部署。 - 运维与开发隔离:运维人员治理k8s资源,写部署模板及默认设置;开发职员只需要提供少量设置即可,把精力主要集中在开发上。 ### Helm的基本原理 > Helm中有四大基本概念:helm客户端、Char、Repository、Release - helm客户端:主要是命令行,负责管理本地的Charts、repositories,发送Chart,实例安装、查询、卸载等操作。 - Chart:是创建一个应用的信息集合,包括各种Kubernetes对象的配置模板、参数定义、依赖关系、文档说明等,形成一个压缩包.tar。 - Char是应用部署的自包含逻辑单元。可以将Chart想象成apt、yum中的软件安装包,同时Char模板可以发布到专门的repository。 - Repository: Chart仓库。类似于docker的镜像仓库,可以使用Harbor作为Chart的仓库。 - Release:release是Chart运行的实例,使用helm install命令在Kubernetes集群中部署的Chart就生成了一个Release。一个Chart能够多次安装到同一个集群,每次安装都是一个Release。Release基于名称空间进行隔离。 ### Helm安装 #### **方法 1:通过脚本自动安装(推荐)** ```shell 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 二进制文件并安装到 `/usr/local/bin` 目录。适用于 Linux/macOS 系统。 #### **方法 2:手动下载二进制文件** 1. 从 [Helm GitHub Release](https://github.com/helm/helm/releases) 下载对应系统的二进制包(如 `helm-v3.x.x-linux-amd64.tar.gz`)。 2. 解压并移动到可执行路径: ```shell tar -zxvf helm-v3.x.x-linux-amd64.tar.gz sudo mv linux-amd64/helm /usr/local/bin/helm ``` * **验证安装**:`helm version`,输出类似 `version.BuildInfo{Version:"v3.x.x"}` 表示成功。 #### **配置 Helm 仓库(添加一个就行,阿里云就好)** 1. **添加官方仓库**: ```shell helm repo add stable https://charts.helm.sh/stable ``` 2. 国内镜像加速 ```shell helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts ``` 3. 更新仓库索引 ```shell helm repo update ``` ##### 验证Helm功能 1. **搜索 Chart 包**: ```shell helm search repo nginx # 查找 Nginx 相关 Chart ``` 注意事项 - 权限要求:确保 kubectl 已配置并具有集群管理员权限,Helm 通过 kubeconfig 文件与集群通信 - 版本兼容性:Helm v3 支持 Kubernetes 1.20+,建议使用最新稳定版 - 离线安装:若服务器无法访问 GitHub,可手动下载二进制文件并复制到 /usr/local/bin ##### **卸载 Helm** ```shel sudo rm /usr/local/bin/helm # 删除二进制文件 # 清除 Helm 配置 rm -rf ~/.helm ``` 最后修改:2025 年 04 月 08 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请随意赞赏