服务网格 ASM(Service Mesh)原则上保持每三个月更新一次Istio版本的频率。新版本推出后,您需要对ASM实例的控制面和数据面及网关进行升级,以降低安全和稳定性风险。ASM网关支持通过KubeAPI进行升级,提供流畅的升级体验。本文介绍如何通过KubeAPI升级ASM网关。
前提条件
已添加集群到ASM实例。且实例版本为1.22.6.64及以上。具体操作,请参见添加集群到ASM实例。
已部署入口网关。具体操作,请参见创建入口网关。
步骤一:升级控制面
请确保您的控制面已经是最新版本,当前网关处于待升级状态。关于控制面版本升级,具体操作,请参见原地升级。
步骤二:升级ASM网关
在ASM实例中,资源类型ASMGatewayUpgrade
专门用于记录网关版本和控制ASM网关升级。当您的网关需要升级时,您可以使用ASM集群的kubeconfig修改该资源中的.spec.version
字段为MATCHED_CONTROLPLANE_VERSION
,修改完成之后会自动触发网关升级。
以下假设要升级的ASM网关名称为ingressgateway
,对应升级的步骤如下:
执行以下命令,查看当前网关的状态。
kubectl -n istio-system get asmgatewayupgrade
预期输出:
NAME STATUS ERROR AGE ingressgateway 4d17h
执行以下命令,进入当前实例中
ASMGatewayUpgrade
资源的编辑状态。kubectl -n istio-system edit asmgatewayupgrade
预期输出:
apiVersion: istio.alibabacloud.com/v1beta1 kind: ASMGatewayUpgrade metadata: creationTimestamp: "2024-10-xxxxxx" generation: 1 name: ingressgateway namespace: istio-system ownerReferences: - apiVersion: istio.alibabacloud.com/v1beta1 blockOwnerDeletion: true controller: true kind: IstioGateway name: ingressgateway uid: c3daa87a-1d8c-41e0-9842-xxxxxx resourceVersion: "2299xxxxxx" uid: b7260c9e-66ce-4ed4-8c74-xxxxxx spec: version: v1.22.2.35-ge64ec8af-aliyun
上述输出实际是一个
vi
编辑界面,修改其中.spec.version
的值,保存并退出后,网关即开始自动升级。您可以在网格实例 > 升级管理中查看网关升级状态。网关升级完成后,ASMGatewayUpgrade中记录的版本将自动更新为与当前控制面版本相匹配的版本。
文档内容是否对您有帮助?