Higress版本升级方案

Greatiga

关注

阅读 11

05-03 18:00

说明

当前Higress版本是1.4.1,使用helm安装的,现在想将其版本升级到2.0.2版本。

数据备份

备份当前配置

# 导出当前Helm配置
helm get values higress -n higress-system > higress-values.yaml
# 备份K8s资源
kubectl get all,ingress -n higress-system -o yaml > higress-backup.yaml

检查兼容性

  • 确认Kubernetes集群版本符合Higress 2.0.2要求(通常需≥1.23)‌
  • 检查插件兼容性(2.0版本可能重构了部分插件API)‌

升级步骤

官方文档

# ${higress_version} 的值示例: v2.0.6
kubectl apply -f https://github.com/alibaba/higress/releases/download/${higress_version}/crd.yaml
helm repo add higress.io https://higress.cn/helm-charts
helm repo update
helm get values higress -n higress-system > values.yaml
# 如果values.yaml内容为空,升级时无需指定 -f values.yaml
helm upgrade higress --version ${higress_version} -n higress-system higress.io/higress
# 下面的values.yaml即为空(无实际内容)
$ cat values.yaml
USER-SUPPLIED VALUES:
null

注意:${higress_version}指的是app的版本不是Higress本身的版本

$ helm list -n higress-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
higress higress-system 3 2025-04-01 04:55:49.618759201 +0000 UTC deployed higress-2.0.6 2.0.6

如果执行“helm upgrade”报错如下:

Error: UPGRADE FAILED: Unable to continue with update: IngressClass higress in namespace  exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key app.kubernetes.io/managed-by: must be set to Helm; annotation validation error: missing key meta.helm.sh/release-name: must be set to higress; annotation validation error: missing key meta.helm.sh/release-namespace: must be set to higress-system

解决方法:

kubectl patch ingressclass higress   --type=merge   -p '{metadata:{labels:{app.kubernetes.io/managed-by:Helm},annotations:{meta.helm.sh/release-name:higress,meta.helm.sh/release-namespace:higress-system}}}'

然后再执行升级命令操作。 验证升级结果:

# 查看版本号
helm list -n higress-system
# 检查Pod状态
kubectl get pods -n higress-system -l app=higress-gateway
# 查看日志
kubectl logs -n higress-system <higress-pod-name>
# 检查gateway svc类型,如果是alb的修改为clusterIP
kubectl get svc -n higress-system -l app=higress-gateway

回滚方案

提供两种方案

快速回滚Helm版本

# 查看历史版本号
helm history higress -n higress-system
helm rollback higress <revision-number> -n higress-system

手动恢复配置

# 恢复资源
kubectl apply -f higress-backup.yaml
# 重装旧版
helm upgrade higress higress.io/higress --version 1.4.1 -n higress-system

其他操作

对Higress平台上的路由做了备份。

精彩评论(0)

0 0 举报