Appearance
Linux 下 Helm 二进制安装指南 | 兼容 Ubuntu 与 CentOS

前言:为什么选择二进制安装?
在 Linux 环境下安装 Helm 有多种方式,但二进制安装是最直接、最可控的方法,特别适合以下场景:
- 离线环境:无法访问包管理器的内网服务器
- 版本锁定:需要精确控制 Helm 版本,避免包管理器自动升级
- CI/CD 流水线:自动化脚本中需要快速、无交互地安装
- Go 开发者:习惯手动管理工具链,对版本有强控制需求
本文将带您在 Ubuntu 和 CentOS 两种主流 Linux 发行版上,通过二进制方式完成 Helm 的完整安装与配置。
第一部分:环境准备
系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Ubuntu 18.04+ 或 CentOS 7+ |
| 架构 | x86_64(amd64)或 ARM64 |
| Kubernetes | 1.16+(Helm v3 要求) |
| 权限 | sudo 权限或 root 用户 |
| 网络 | 能够访问 https://get.helm.sh(离线环境需提前下载) |
确认系统信息
bash
# 查看操作系统版本
cat /etc/os-release
# Ubuntu 示例输出:NAME="Ubuntu", VERSION="22.04.3 LTS"
# CentOS 示例输出:NAME="CentOS Linux", VERSION="7 (Core)"
# 查看系统架构
uname -m
# 输出:x86_64 或 aarch64第二部分:下载 Helm 二进制文件
方式一:使用 curl 下载(推荐)
bash
# 定义 Helm 版本(建议使用最新稳定版)
HELM_VERSION="v3.14.0"
# 根据架构选择下载链接(以 amd64 为例)
curl -sLO "https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz"
# 如需 ARM64 架构,替换为:
# curl -sLO "https://get.helm.sh/helm-${HELM_VERSION}-linux-arm64.tar.gz"方式二:使用 wget 下载
bash
# Ubuntu 或 CentOS 均可用
wget "https://get.helm.sh/helm-v3.14.0-linux-amd64.tar.gz"方式三:离线安装(内网环境)
在有网络的机器上下载压缩包:
bashcurl -sLO "https://get.helm.sh/helm-v3.14.0-linux-amd64.tar.gz"将压缩包拷贝到目标服务器:
bashscp helm-v3.14.0-linux-amd64.tar.gz user@target-server:/tmp/
第三部分:解压与安装
1. 解压压缩包
bash
# 解压到当前目录
tar -zxvf helm-v3.14.0-linux-amd64.tar.gz
# 解压后目录结构:
# linux-amd64/
# └── helm2. 安装二进制文件
推荐位置:/usr/local/bin/helm(用户级程序标准路径)
bash
# 移动二进制到系统路径
sudo mv linux-amd64/helm /usr/local/bin/helm
# 验证安装
helm version
# 预期输出:version.BuildInfo{Version:"v3.14.0", ...}备选位置:/usr/bin/helm(系统级路径)
bash
# Ubuntu/CentOS 通用
sudo mv linux-amd64/helm /usr/bin/helm3. 清理临时文件
bash
# 删除解压目录和压缩包
rm -rf linux-amd64/ helm-v3.14.0-linux-amd64.tar.gz第四部分:配置环境变量(可选)
如果 helm 命令无法识别,需要将安装路径添加到 PATH 中。
检查 PATH 是否包含安装路径
bash
echo $PATH
# 确认是否包含 /usr/local/bin永久配置(推荐)
Ubuntu(.bashrc):
bash
echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc
source ~/.bashrcCentOS(.bash_profile):
bash
echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bash_profile
source ~/.bash_profile验证 PATH 配置
bash
which helm
# 输出:/usr/local/bin/helm第五部分:安装验证与初始化
1. 检查 Helm 版本
bash
helm version
# 完整输出示例:
# version.BuildInfo{Version:"v3.14.0", GitCommit:"...", GitTreeState:"clean", GoVersion:"go1.21.5"}
# 仅查看客户端版本
helm version --client2. 检查 Kubernetes 集群连接
bash
# 确认 kubectl 配置正确
kubectl cluster-info
# 测试 Helm 与集群的连通性
helm list -n default
# 如果集群正常,会显示空列表或已有 Release3. 添加官方 Chart 仓库(建议)
bash
# 添加 Bitnami 仓库(最常用的公共仓库)
helm repo add bitnami https://charts.bitnami.com/bitnami
# 添加 Stable 仓库(已归档,但仍有大量 Chart)
helm repo add stable https://charts.helm.sh/stable
# 更新仓库索引
helm repo update
# 验证仓库列表
helm repo list
# 输出示例:
# NAME URL
# bitnami https://charts.bitnami.com/bitnami
# stable https://charts.helm.sh/stable4. 启用 Shell 自动补全(提升体验)
Bash:
bash
# Ubuntu/CentOS 通用
echo "source <(helm completion bash)" >> ~/.bashrc
source ~/.bashrcZsh(如有安装):
bash
echo "source <(helm completion zsh)" >> ~/.zshrc
source ~/.zshrc第六部分:Ubuntu 与 CentOS 差异点速查
| 操作项 | Ubuntu | CentOS | 说明 |
|---|---|---|---|
| 包管理器 | apt | yum / dnf | 本文使用二进制安装,不依赖包管理器 |
| 默认 Shell | Bash | Bash | 环境变量配置方式相同 |
| PATH 配置 | ~/.bashrc | ~/.bash_profile | 配置文件名不同,但逻辑一致 |
| curl/wget | 预装 curl | 预装 wget | 两种工具均可使用 |
| sudo 权限 | 需要 | 需要 | 安装到系统路径需要提权 |
第七部分:离线环境最佳实践 —— 使用 Helm 下载 Chart 包
在企业生产环境中,内网隔离是常态。您可能无法直接通过 helm repo add 和 helm install 在线安装 Chart,但 Helm 二进制本身就支持 Chart 的下载与导出,非常适合离线分发场景。
场景一:在有网环境下载 Chart 包
在可以访问公网的机器上,通过 Helm 将 Chart 下载为 .tgz 压缩包:
bash
# 1. 添加仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
# 2. 搜索并下载 Chart(不安装)
helm pull bitnami/nginx --version 15.0.0
# 3. 验证下载
ls -lh nginx-15.0.0.tgz
# 输出:-rw-r--r-- 1 root root 28K Aug 21 10:00 nginx-15.0.0.tgz
# 4. 可选:解压查看 Chart 内容
tar -zxvf nginx-15.0.0.tgz场景二:在内网环境安装 Chart
将下载好的 .tgz 包拷贝到内网服务器,直接通过本地包安装:
bash
# 1. 拷贝到内网服务器
scp nginx-15.0.0.tgz user@internal-server:/tmp/
# 2. 在内网服务器上安装(无需联网)
helm install my-nginx /tmp/nginx-15.0.0.tgz -n web
# 3. 或者先解压再安装(方便修改 values)
tar -zxvf /tmp/nginx-15.0.0.tgz
helm install my-nginx ./nginx --set image.tag=1.25.3 -n web场景三:下载 Chart 及其所有依赖(离线完整包)
如果 Chart 有子依赖(如 Nginx 依赖 Redis),需要将所有依赖一并下载:
bash
# 1. 在有网环境下载 Chart 及依赖
helm pull bitnami/nginx --version 15.0.0 --untar
cd nginx/
# 2. 下载所有依赖到 charts/ 目录
helm dependency update .
# 3. 重新打包为完整的 .tgz(包含所有依赖)
cd ..
helm package nginx/
# 4. 现在 nginx-15.0.0.tgz 包含了所有子 Chart场景四:使用 Chart 归档仓库(内部私有仓库)
企业通常会有内部 Harbor 或 ChartMuseum 作为私有 Chart 仓库,可以从内网仓库拉取:
bash
# 1. 添加内网仓库
helm repo add internal http://harbor.internal.com/chartrepo/my-project
helm repo update
# 2. 搜索内部 Chart
helm search repo internal/nginx
# 3. 直接安装(依赖内网仓库可用)
helm install my-nginx internal/nginx --version 15.0.0 -n web场景五:导出所有已安装的 Release 为 Chart 包
如果需要将集群中已部署的 Release 备份或迁移:
bash
# 1. 查看已安装的 Release
helm list -n web
# 2. 获取 Release 使用的 Chart 名称和版本
helm get metadata my-nginx -n web
# 3. 从仓库重新拉取对应版本的 Chart
helm pull bitnami/nginx --version 15.0.0离线环境 Helm 使用流程图
离线安装 vs 在线安装 对比
| 对比项 | 在线安装 | 离线安装(推荐内网) |
|---|---|---|
| 网络要求 | 需要访问公网 Chart 仓库 | 零网络依赖 |
| 版本控制 | 可能因仓库更新而变动 | 固定版本,可审计 |
| 重复部署 | 每次需要联网 | 一次下载,多次使用 |
| CI/CD 集成 | 依赖外部网络稳定性 | 内网快速稳定 |
| 安全性 | 需信任外部仓库 | 可审计 Chart 内容 |
| 适用场景 | 开发/测试环境 | 生产环境 |
最佳实践:建议将常用的 Chart(如 Nginx、Redis、PostgreSQL 等)提前下载好,构建一个企业内部的 Chart 归档库,所有生产部署都基于内网归档包,既安全又高效。
相关命令速查:
bash
# 下载 Chart(不依赖 Kubernetes 集群)
helm pull REPO/CHART --version VERSION
# 下载并解压
helm pull REPO/CHART --version VERSION --untar
# 下载包含所有依赖的完整 Chart
helm dependency update ./CHART_DIR
helm package ./CHART_DIR
# 从本地 .tgz 文件安装
helm install RELEASE_NAME CHART.tgz -n NAMESPACE第八部分:常见问题与排障
Q1:helm: command not found
原因:二进制未正确安装到 PATH。
解决方案:
bash
# 检查二进制是否存在
ls -l /usr/local/bin/helm
# 如果不存在,重新移动
sudo mv linux-amd64/helm /usr/local/bin/helm
# 确保 PATH 包含 /usr/local/bin
export PATH=$PATH:/usr/local/binQ2:helm version 报错 Error: Kubernetes cluster unreachable
原因:Kubeconfig 配置不正确或集群未启动。
解决方案:
bash
# 检查 Kubeconfig
kubectl cluster-info
# 如果 kubectl 未配置,设置 Kubeconfig
export KUBECONFIG=~/.kube/configQ3:下载速度慢或无法下载
解决方案:
- 使用国内镜像源(如阿里云):bash
# 阿里云 Helm 镜像 curl -sLO "https://mirrors.aliyun.com/kubernetes/helm/helm-v3.14.0-linux-amd64.tar.gz" - 或使用代理:bash
export https_proxy=http://your-proxy:port curl -sLO "https://get.helm.sh/helm-v3.14.0-linux-amd64.tar.gz"
Q4:版本选择建议
| 场景 | 建议版本 | 说明 |
|---|---|---|
| 生产环境 | 最新稳定版 - 1 个小版本 | 稳定性优先 |
| 开发测试 | 最新稳定版 | 体验新特性 |
| K8s 1.16-1.20 | Helm v3.8.x | 兼容老版本集群 |
第九部分:一键安装脚本(全自动)
将以下脚本保存为 install-helm.sh,一键完成全部安装:
bash
#!/bin/bash
# install-helm.sh - Linux 下 Helm 二进制一键安装脚本
# 兼容 Ubuntu 和 CentOS
set -e
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
echo -e "${GREEN}>> 开始安装 Helm...${NC}"
# 1. 定义版本
HELM_VERSION="v3.14.0"
HELM_DIST="helm-${HELM_VERSION}-linux-amd64.tar.gz"
HELM_URL="https://get.helm.sh/${HELM_DIST}"
# 2. 下载
echo -e "${GREEN}>> 下载 Helm ${HELM_VERSION}...${NC}"
if command -v curl &> /dev/null; then
curl -sLO "${HELM_URL}"
elif command -v wget &> /dev/null; then
wget "${HELM_URL}"
else
echo -e "${RED}错误:需要 curl 或 wget${NC}"
exit 1
fi
# 3. 解压
echo -e "${GREEN}>> 解压文件...${NC}"
tar -xzf "${HELM_DIST}"
# 4. 安装
echo -e "${GREEN}>> 安装到 /usr/local/bin/helm...${NC}"
sudo mv linux-amd64/helm /usr/local/bin/helm
# 5. 清理
rm -rf "${HELM_DIST}" linux-amd64/
# 6. 验证
echo -e "${GREEN}>> 验证安装...${NC}"
helm version
# 7. 添加仓库
echo -e "${GREEN}>> 添加 Bitnami 仓库...${NC}"
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
echo -e "${GREEN} Helm 安装完成!${NC}"
echo -e "运行 'helm version' 验证安装"执行脚本:
bash
chmod +x install-helm.sh
./install-helm.sh结语
通过本文,您已经掌握了在 Ubuntu 和 CentOS 下通过二进制方式安装 Helm 的完整流程。这种方式虽然手动,但胜在可控、透明、跨发行版一致,尤其适合对版本有精确要求的 Go 技术栈开发者和运维工程师。
接下来,您可以继续阅读 Helm 从入门到实战:从一条 upgrade 命令说起 深入学习 Helm 的使用。
相关资源推荐:
本文安装示例使用 Helm v3.14.0,建议访问官方 Releases 页面获取最新版本号。
