请访问 Alauda Service Mesh Essentials 获取安装说明。
平台为服务网格中的 Istio 提供了金丝雀升级机制,先部署新版本的 istiod 组件,待所有数据平面升级完成后,再退役旧版本的 istiod 组件。
鉴于 Istio 版本与 Kubernetes 版本之间的强依赖关系,请确保集群当前的 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 数据平面镜像更新,因此若服务存在长连接,滚动更新期间会有短暂服务中断。
集群中旧版本的 istiod 只有在所有 Istio 数据平面升级完成后才能退役。
注意事项:
步骤
Istio Version
右侧的 Decommission Old Version 按钮,弹出退役旧版本确认框。注意:若集群中存在未升级的数据平面,点击 Decommission Old Version 后,弹窗会显示该集群中未升级的 ingress gateways、egress gateways 和 Sidecars,方便快速定位待升级数据平面。