【Helm】-- 在 macOS 上快速部署 Helm CLI:从零到一实战指南

张开发
2026/4/20 20:54:03 15 分钟阅读

分享文章

【Helm】-- 在 macOS 上快速部署 Helm CLI:从零到一实战指南
1. Helm 是什么为什么你需要它如果你正在使用 Kubernetes那你一定遇到过这样的烦恼每次部署应用都要手动写一堆 YAML 文件管理起来特别麻烦。这时候 Helm 就能派上大用场了。简单来说Helm 就像是 Kubernetes 的应用商店它能把复杂的 Kubernetes 应用打包成一个叫 Chart 的安装包让你可以像安装手机应用一样轻松部署 Kubernetes 应用。我在实际项目中使用 Helm 已经有两年多了最大的感受就是它真的能节省大量时间。以前部署一个微服务应用要花半天时间写各种配置文件现在用 Helm 几分钟就能搞定。而且 Helm 还能管理应用的生命周期升级、回滚都特别方便。Helm 主要由两个部分组成Helm CLI这是我们要安装的命令行工具ChartKubernetes 应用的打包格式Repository存放 Chart 的仓库就像手机的应用商店2. 在 macOS 上安装 Helm CLI2.1 准备工作在开始安装之前建议先检查下你的 macOS 环境确保你的 macOS 版本在 10.15 或以上确认已经安装了 Homebrew如果没有可以通过/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)安装确保你的终端可以正常访问网络我遇到过不少因为环境问题导致的安装失败所以提前检查这些可以避免很多麻烦。2.2 通过 Homebrew 安装推荐方法这是我最推荐的安装方式简单又方便。打开终端输入以下命令brew install helm等待安装完成后可以用这个命令验证helm version如果看到类似这样的输出就说明安装成功了version.BuildInfo{Version:v3.12.0, GitCommit:...}Homebrew 安装的好处是它会自动处理依赖关系而且以后升级也很方便只需要brew upgrade helm就行。2.3 手动安装方法如果你不想用 Homebrew也可以选择手动安装。这里我详细说明下步骤首先去 Helm 的 GitHub 发布页面找到最新版本curl -LO https://get.helm.sh/helm-v3.12.0-darwin-amd64.tar.gz解压下载的文件tar -zxvf helm-v3.12.0-darwin-amd64.tar.gz把 helm 可执行文件移动到系统路径sudo mv darwin-amd64/helm /usr/local/bin/helm最后别忘了验证安装helm version手动安装虽然步骤多点但可以精确控制安装的版本适合有特定版本需求的场景。3. 安装后的配置和优化3.1 设置命令自动补全Helm 支持命令自动补全可以大大提高工作效率。设置方法如下对于 zsh 用户echo source (helm completion zsh) ~/.zshrc source ~/.zshrc对于 bash 用户echo source (helm completion bash) ~/.bash_profile source ~/.bash_profile设置完成后在终端输入helm然后按 Tab 键就能看到可用的命令提示了。3.2 添加常用 Chart 仓库Helm 默认没有配置任何仓库我们需要手动添加一些常用的helm repo add stable https://charts.helm.sh/stable helm repo add bitnami https://charts.bitnami.com/bitnami添加完成后可以用这个命令更新仓库索引helm repo update3.3 配置 Helm 环境Helm 有一些环境变量可以配置比如设置默认的 kubeconfig 路径export HELM_KUBECONFIG~/.kube/config可以把这行加到你的 shell 配置文件里.zshrc 或 .bash_profile这样每次打开终端都会自动设置。4. Helm 常用命令详解4.1 基础命令搜索 Charthelm search repo nginx这个命令会在你添加的所有仓库中搜索包含 nginx 的 Chart。安装 Charthelm install my-nginx bitnami/nginx这里 my-nginx 是你给这次安装起的名字bitnami/nginx 是 Chart 的名称。查看已安装的 Charthelm list4.2 进阶操作升级安装helm upgrade my-nginx bitnami/nginx --version 13.2.0回滚到之前版本helm rollback my-nginx 1查看安装历史helm history my-nginx卸载 Charthelm uninstall my-nginx4.3 调试命令有时候安装不顺利可以用这些命令来调试查看安装详情helm get manifest my-nginx查看安装状态helm status my-nginx模拟安装不实际执行helm install my-nginx bitnami/nginx --dry-run5. 常见问题排查5.1 安装后命令找不到如果输入helm提示命令找不到可能是 PATH 设置有问题。可以这样检查echo $PATH确保/usr/local/bin在输出结果中。如果没有可以这样添加export PATH$PATH:/usr/local/bin5.2 版本兼容性问题Helm 和 Kubernetes 版本之间有一定的兼容性要求。如果遇到奇怪的问题可以先用这个命令检查兼容性helm version --short kubectl version --short一般来说Helm 3.x 需要 Kubernetes 1.20 版本。5.3 网络连接问题有时候添加仓库或下载 Chart 会失败可能是网络问题。可以尝试检查网络连接临时关闭防火墙试试使用--debug参数查看详细错误信息helm repo add --debug stable https://charts.helm.sh/stable6. 实际应用案例6.1 部署 WordPress让我们用 Helm 来实际部署一个 WordPress 网站helm repo add bitnami https://charts.bitnami.com/bitnami helm install my-wordpress bitnami/wordpress安装完成后可以用这个命令获取访问地址kubectl get svc my-wordpress-wordpress -o jsonpath{.status.loadBalancer.ingress[0].ip}6.2 自定义安装参数Helm 允许你自定义安装参数。比如要修改 WordPress 的管理员邮箱helm install my-wordpress bitnami/wordpress --set wordpressEmailadminexample.com或者使用自定义的 values 文件echo wordpressEmail: adminexample.com custom-values.yaml helm install my-wordpress bitnami/wordpress -f custom-values.yaml6.3 生产环境最佳实践在实际生产环境中我建议总是指定 Chart 版本避免自动升级带来意外使用 values 文件来管理配置而不是命令行参数定期备份你的 Helm 发布信息备份命令示例helm get values my-wordpress wordpress-values.yaml helm get manifest my-wordpress wordpress-manifest.yaml7. 高级技巧和优化建议7.1 使用 Helm PluginsHelm 支持插件扩展功能。比如安装一个 diff 插件可以比较版本差异helm plugin install https://github.com/databus23/helm-diff安装后就可以使用helm diff upgrade my-wordpress bitnami/wordpress7.2 创建自己的 Chart当你熟悉 Helm 后可以开始创建自己的 Charthelm create my-chart这会生成一个标准的 Chart 目录结构包含 templates、values.yaml 等文件。7.3 安全最佳实践总是验证 Chart 的来源使用helm lint检查 Chart 是否有问题考虑使用 Helm 的签名验证功能验证 Chart 签名示例helm verify bitnami/wordpress8. 性能优化技巧8.1 缓存优化Helm 会缓存仓库索引默认在~/Library/Caches/helm。如果遇到仓库更新不及时的问题可以手动清理rm -rf ~/Library/Caches/helm/repository helm repo update8.2 并行安装对于大型部署可以使用--atomic参数确保所有资源一起创建helm install my-app ./my-chart --atomic8.3 资源限制在 values.yaml 中合理设置资源限制避免应用占用过多资源resources: limits: cpu: 500m memory: 512Mi requests: cpu: 250m memory: 256Mi9. 与其他工具的集成9.1 与 CI/CD 集成在 CI/CD 流水线中使用 Helm 的示例helm upgrade --install my-app ./my-chart \ --namespace $NAMESPACE \ --values values-$ENV.yaml \ --atomic \ --timeout 5m9.2 与 Terraform 配合使用可以通过 Helm Provider 在 Terraform 中管理 Helm 发布provider helm { kubernetes { config_path ~/.kube/config } } resource helm_release nginx { name my-nginx repository https://charts.bitnami.com/bitnami chart nginx }9.3 与监控系统集成安装 Prometheus 监控helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install my-prometheus prometheus-community/prometheus10. 保持 Helm 更新10.1 检查新版本helm version brew info helm10.2 升级 Helm如果是 Homebrew 安装的brew update brew upgrade helm手动安装的可以重复安装步骤覆盖旧版本。10.3 清理旧版本Homebrew 安装的可以清理旧版本brew cleanup helm

更多文章