请访问 Alauda Service Mesh Essentials 获取安装说明。
平台为服务网格中的 Istio 提供了金丝雀升级方案,先部署新版本的 istiod 组件,待所有数据平面升级完成后,再退役旧版本的 istiod 组件。
鉴于 Istio 版本与 Kubernetes 版本之间存在较强的依赖关系,升级 Istio 前请确保集群当前的 Kubernetes 版本满足 Istio 升级要求,以保证金丝雀升级成功完成。
下表展示了当前平台版本支持的 Istio 升级路径及对应路径所需的 Kubernetes 版本。
支持的 Istio 升级路径 | Kubernetes 版本要求 |
---|---|
Istio 从 1.20 升级到 1.22 | Kubernetes 版本 1.27 、1.28 |
Istio 从 1.18 升级到 1.22 | Kubernetes 版本 1.27 |
注意:
完整的服务网格升级流程包括以下步骤:
Service Mesh Name
进入网格详情。Cluster Name
,在新标签页打开集群详情页面。注意:服务网格的非 Istio 组件包括 asm、Flagger Operator、Asm Operator、Jaeger Operator。
注意:部署新版本 istiod 前,请参考 升级前准备 确保集群 Kubernetes 版本满足升级路径要求。
Istio Version
右侧的 Upgrade 按钮,弹窗中会显示 Istio 的升级路径。在 平台管理 左侧导航中,点击 Service Mesh > EnvoyFilter。
注意:若平台存在多个服务网格,可通过顶部导航栏切换至集群所在的服务网格。
检查 EnvoyFilter 列表中是否有数据。
集群中的 Istio 数据平面包括 Sidecars、ingress gateways 和 egress gateways。
方法一:通过交互式命令行工具升级
交互式命令行工具可批量升级集群中所有 Sidecars 和网关。适合熟悉命令行操作的用户,尤其是需要一次性快速升级整个集群的场景。
注意:也可使用无确认的快速升级参数执行升级。
注意:ingress 和 egress gateways 的滚动升级过程是先删除旧 Pod,再创建新 Pod,直到所有 Pod 升级为新版本数据平面镜像。因此,若网关仅有一个 Pod,升级期间该网关将不可用。
方法二:通过 UI 升级
通过 UI 可按不同命名空间批量升级,或指定单个服务/网关升级。适合喜欢可视化操作的用户,尤其是需要灵活选择升级目标的场景。
升级 Ingress 和 Egress Gateways
升级 Sidecars
Service Mesh Name
进入网格详情。Namespace Name
,在新标签页打开该命名空间的 Service Mesh 页面,进入 Sidecar 所在命名空间。
注意:请依次对所有命名空间执行 Sidecar 升级。Service Name
旁出现 注意:Sidecar 是通过滚动更新服务的 Deployment 来完成 Pod 数据平面镜像的更新,因此若服务存在长连接,滚动更新 Pod 期间会有短暂的服务中断。
集群中旧版本的 istiod 仅在所有 Istio 数据平面升级完成后才能退役。
注意事项:
操作步骤
Istio Version
右侧的 Decommission Old Version 按钮,弹出 Decommission Old Version 窗口。注意:若集群中存在未升级的数据平面,点击 Decommission Old Version 后,弹窗会显示集群中未升级的 ingress gateways、egress gateways 和 Sidecars,方便快速定位待升级的数据平面。