0
点赞
收藏
分享

微信扫一扫

Higress版本升级方案

说明

当前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 条评论