Skip to content

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

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

前言:为什么选择二进制安装?

在 Linux 环境下安装 Helm 有多种方式,但二进制安装是最直接、最可控的方法,特别适合以下场景:

  • 离线环境:无法访问包管理器的内网服务器
  • 版本锁定:需要精确控制 Helm 版本,避免包管理器自动升级
  • CI/CD 流水线:自动化脚本中需要快速、无交互地安装
  • Go 开发者:习惯手动管理工具链,对版本有强控制需求

本文将带您在 UbuntuCentOS 两种主流 Linux 发行版上,通过二进制方式完成 Helm 的完整安装与配置。

第一部分:环境准备

系统要求

项目要求
操作系统Ubuntu 18.04+ 或 CentOS 7+
架构x86_64(amd64)或 ARM64
Kubernetes1.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"

方式三:离线安装(内网环境)

  1. 在有网络的机器上下载压缩包:

    bash
    curl -sLO "https://get.helm.sh/helm-v3.14.0-linux-amd64.tar.gz"
  2. 将压缩包拷贝到目标服务器:

    bash
    scp 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/
# └── helm

2. 安装二进制文件

推荐位置/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/helm

3. 清理临时文件

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 ~/.bashrc

CentOS(.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 --client

2. 检查 Kubernetes 集群连接

bash
# 确认 kubectl 配置正确
kubectl cluster-info

# 测试 Helm 与集群的连通性
helm list -n default
# 如果集群正常,会显示空列表或已有 Release

3. 添加官方 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/stable

4. 启用 Shell 自动补全(提升体验)

Bash

bash
# Ubuntu/CentOS 通用
echo "source <(helm completion bash)" >> ~/.bashrc
source ~/.bashrc

Zsh(如有安装):

bash
echo "source <(helm completion zsh)" >> ~/.zshrc
source ~/.zshrc

第六部分:Ubuntu 与 CentOS 差异点速查

操作项UbuntuCentOS说明
包管理器aptyum / dnf本文使用二进制安装,不依赖包管理器
默认 ShellBashBash环境变量配置方式相同
PATH 配置~/.bashrc~/.bash_profile配置文件名不同,但逻辑一致
curl/wget预装 curl预装 wget两种工具均可使用
sudo 权限需要需要安装到系统路径需要提权

第七部分:离线环境最佳实践 —— 使用 Helm 下载 Chart 包

在企业生产环境中,内网隔离是常态。您可能无法直接通过 helm repo addhelm 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/bin

Q2:helm version 报错 Error: Kubernetes cluster unreachable

原因:Kubeconfig 配置不正确或集群未启动。

解决方案

bash
# 检查 Kubeconfig
kubectl cluster-info

# 如果 kubectl 未配置,设置 Kubeconfig
export KUBECONFIG=~/.kube/config

Q3:下载速度慢或无法下载

解决方案

  • 使用国内镜像源(如阿里云):
    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.20Helm 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 页面获取最新版本号。

最后更新2026/08/21 03:38
如果你觉得这篇文章有帮助,或者想聊聊技术、工作,欢迎通过下面方式联系我:
contact fishfinal