You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Kubernetes 1.25后Helm升级失败,HPA API版本问题求助

报错原因
  1. Kubernetes 1.25已彻底移除autoscaling/v2beta1 API组,集群无法识别该版本的HorizontalPodAutoscaler资源。
  2. 尽管你已更新Helm模板中的HPA为autoscaling/v2版本,但当前Helm release对应的集群内仍存在旧版本(v2beta1)的HPA资源,Helm在升级时会尝试对现有资源做变更校验,因旧API版本已失效导致校验失败。
  3. Helm的release历史记录中可能留存了旧版本的资源定义,升级时Helm加载这些历史记录做对比,触发API版本不兼容错误。
无需卸载重装的修复方法

方法一:手动更新现有HPA资源后再升级

  • 导出当前release的完整manifest:
    helm get manifest <你的release名称> -n <命名空间> > old-manifest.yaml
    
  • 从导出的文件中提取HPA资源片段,将apiVersion改为autoscaling/v2,同时调整metrics等字段适配v2版本的语法要求。
  • 删除集群中旧的HPA资源:
    kubectl delete hpa <HPA名称> -n <命名空间>
    
  • 应用修改后的HPA资源:
    kubectl apply -f <修改后的HPA文件路径>
    
  • 重新执行Helm升级命令:
    helm upgrade --install ...
    

方法二:使用--force参数强制升级

直接执行带--force参数的升级命令,该参数会跳过部分资源校验,强制用新模板替换现有资源:

helm upgrade --install --force <你的release名称> <chart路径> -n <命名空间> [其他自定义参数]

注意:需确保新模板中的HPA完全符合autoscaling/v2的语法规范,否则可能导致资源创建失败。

方法三:清理Helm release历史记录(谨慎操作)

  • 查看release的历史版本:
    helm history <你的release名称> -n <命名空间>
    
  • 删除包含旧API版本资源的历史记录:
    helm history delete <你的release名称> <旧版本号> -n <命名空间>
    
  • 若存在可回滚的正常版本,先回滚再升级:
    helm rollback <你的release名称> <正常版本号> -n <命名空间>
    helm upgrade --install ...
    

内容的提问来源于stack exchange,提问作者Maoz Zadok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:52:23