Helm常用命令大全(2025最新版)

发布于:2025-07-20 ⋅ 阅读:(10) ⋅ 点赞:(0)

Helm常用命令大全(2025最新版)

一、基础命令与环境配置

版本与帮助信息

Helm 3.18.1作为2025年最新稳定版,提供以下基础命令用于环境验证和帮助查询:

命令 描述 示例
helm version 查看Helm客户端版本 helm version --short 返回 v3.18.1+g1234567
helm help 获取命令帮助 helm help install 查看安装命令详情
helm completion bash 生成Bash自动补全脚本 source <(helm completion bash) 启用实时补全

安装与升级Helm

Linux系统安装
# 下载v3.18.1二进制包
curl -LO https://get.helm.sh/helm-v3.18.1-linux-amd64.tar.gz
# 校验文件完整性(示例SHA256需替换为官网值)
echo "2be99836549413c2f0212d644e8740abd8ba5d7f55484c29d3363cea339891d9 helm-v3.18.1-linux-amd64.tar.gz" | sha256sum -c
# 解压并安装
tar -zxvf helm-v3.18.1-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/
版本升级注意事项
  • 备份配置:升级前执行 cp ~/.config/helm/ ~/.config/helm.bak/
  • 性能分析:v3.18.0+支持CPU/内存Profiling,可通过 export HELM_PPROF=localhost:6060 启用

二、仓库管理命令

Helm 3采用分布式仓库模型,需手动添加仓库源。国内常用仓库配置如下:

仓库基础操作

命令 描述 示例
helm repo add 添加仓库 helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update 更新仓库索引 helm repo update(建议每次安装前执行)
helm repo list 查看仓库列表 helm repo list 显示所有已配置仓库
helm repo remove 删除仓库 helm repo remove stable

OCI仓库支持(v3.8+新特性)

Helm 3支持直接使用容器镜像仓库存储Charts(如Harbor、Docker Hub):

# 添加OCI仓库
helm repo add oci://harbor.example.com/chartrepo --username admin --password Harbor12345
# 推送Chart到OCI仓库
helm push mychart-0.1.0.tgz oci://harbor.example.com/chartrepo

三、Chart操作命令

Chart创建与打包

命令 描述 示例
helm create 创建新Chart helm create myapp 生成标准Chart目录结构
helm package 打包Chart helm package myapp --version 1.0.0 --app-version 2.3.4
helm lint 校验Chart合法性 helm lint myapp --strict 启用严格模式检查

安全提示:v3.17.3+的helm lint新增安全策略检查,可检测常见配置风险

Chart搜索与下载

# 从Artifact Hub搜索Chart
helm search hub mysql --version ">=8.0.0"
# 从已添加仓库搜索
helm search repo bitnami/mysql --versions
# 下载Chart到本地
helm pull bitnami/mysql --version 9.14.0 --untar

四、Release管理核心命令

安装部署应用

# 基础安装(指定release名称和命名空间)
helm install my-mysql bitnami/mysql --namespace db --create-namespace

# 自定义配置安装
helm install my-nginx bitnami/nginx \
  --set service.type=NodePort \
  --set replicaCount=3 \
  -f production-values.yaml

# 自动生成release名称
helm install --generate-name bitnami/redis

升级与回滚

命令 描述 示例
helm upgrade 升级Release helm upgrade my-app ./mychart --atomic --timeout 10m
helm rollback 回滚版本 helm rollback my-app 2(回滚到版本2)
helm history 查看历史记录 helm history my-app --max 10

高级参数helm upgrade --history-max 10 限制保留历史版本数量,优化存储

卸载与暂停

# 完全卸载Release
helm uninstall my-app --namespace default

# 仅暂停Release(保留资源)
helm uninstall my-app --keep-history

五、配置管理与自定义

配置覆盖优先级

Helm配置覆盖顺序:--set > 命令行文件 > 默认values.yaml:

# 多值文件合并(后者覆盖前者)
helm install my-app ./chart -f base.yaml -f prod.yaml

# 使用--set覆盖嵌套配置
helm install my-app ./chart --set image.tag=v2.1.0 --set ingress.enabled=true

配置校验与调试

v3.18.0引入JSON Schema 2020支持,可通过以下命令验证配置:

# 本地渲染模板并验证
helm template my-app ./chart -f values.yaml --validate

# 生成values.schema.json(高级功能)
helm schema-gen values.yaml > values.schema.json

六、状态查看与问题排查

基础状态查询

命令 描述 示例
helm status 查看Release状态 helm status my-app 显示详细部署信息
helm list 列出Release helm list -n default 查看指定命名空间的Release
helm get manifest 获取渲染后的YAML helm get manifest my-app > deployed.yaml

高级问题排查

  1. 查看-values配置helm get values my-app -o yaml

  2. 检查事件日志kubectl describe pod/my-app-xxx(结合Helm状态中的Pod名称)

  3. Hook失败调试:v3.18.0+支持自动输出Hook失败日志,无需额外命令

  4. 安装差异对比:使用helm diff插件(需先安装 helm plugin install https://github.com/databus23/helm-diff):

    helm diff upgrade my-app ./chart --ignore-annotations
    

七、高级功能与安全加固

Chart签名与验证

为防止供应链攻击,Helm支持Chart签名验证:

# 生成GPG密钥
gpg --gen-key
# 签名Chart包
helm package --sign --key 'my-gpg-key' --keyring ~/.gnupg/secring.gpg mychart
# 验证Chart
helm verify mychart-0.1.0.tgz --keyring ~/.gnupg/pubring.gpg

依赖管理

Chart依赖通过Chart.yaml声明,可通过以下命令管理:

# 更新依赖到charts/目录
helm dependency update mychart
# 查看依赖树
helm dependency list mychart

性能优化命令

v3.18.0新增Profiling功能,可用于诊断大型Chart性能问题:

# 启用CPU Profiling安装Chart
helm install my-app ./large-chart --cpu-profile
# 生成内存Profile报告
helm install my-app ./large-chart --mem-profile

八、命令行变更与兼容说明

Helm 3相比Helm 2有显著命令行变化,以下为常用命令映射:

Helm 2命令 Helm 3命令 备注
helm delete helm uninstall 卸载Release
helm inspect helm show 查看Chart详情(如 helm show values
helm fetch helm pull 下载Chart到本地
helm serve 移除 改用外部仓库服务(如ChartMuseum)

注意:Helm 3 Release名称仅在命名空间内唯一,不同命名空间可重复使用相同名称

九、常见问题解决

  1. Chart验证失败

    helm lint ./mychart --strict  # 严格模式检查语法错误
    helm template ./mychart | kubectl apply --dry-run=client -f -  # 验证Kubernetes兼容性
    
  2. 升级超时错误

    helm upgrade my-app ./chart --timeout 15m --atomic  # 延长超时并启用原子操作
    
  3. 修复依赖冲突

    rm -rf charts/  # 删除现有依赖
    helm dependency update ./mychart  # 重新拉取依赖
    

通过上述命令集,可全面覆盖Helm 3.18.x的日常使用场景,从基础部署到高级安全加固。建议定期执行helm repo update保持Chart索引最新,并关注Helm官方博客获取版本更新信息。


网站公告

今日签到

点亮在社区的每一天
去签到