升级
目录
安装最新的 Global Alauda Service Mesh Essentials 集群插件
请访问 Alauda Service Mesh Essentials 获取安装说明。
升级业务集群组件
升级前准备
平台为服务网格中的 Istio 提供了金丝雀升级方案,先部署新版本的 istiod 组件,待所有数据平面升级完成后,再退役旧版本的 istiod 组件。
鉴于 Istio 版本与 Kubernetes 版本的强依赖关系,请确保集群当前的 Kubernetes 版本满足 Istio 升级要求,才能成功完成金丝雀升级。
下表展示了当前平台版本支持的 Istio 升级路径及这些路径所需的 Kubernetes 版本。
注意:
- 表中仅描述了 Istio 和 Kubernetes 的主版本,次版本不影响兼容性。
- 你可以通过进入 Components 列表查看集群中当前运行的 Istio 和 Kubernetes 版本。
- 如果集群当前的 Kubernetes 版本低于 Istio 升级所需版本,则需要通过 Upgrade Components 升级 Kubernetes 至兼容版本。
- 更多信息请参考 Community 的 Istio 支持的 Kubernetes 版本。
升级流程
完整的服务网格升级流程包括以下步骤:
- 升级集群中服务网格的非 Istio 组件,如 asm operator、flagger operator 等。
- 在集群中部署新版本的 istiod。
- 检查集群中是否存在 EnvoyFilters。
- 升级集群中所有 Istio 数据平面。
- 退役集群中旧版本的 istiod。
升级操作
升级集群中服务网格的非 Istio 组件
- 在 平台管理 左侧导航中,点击 Service Mesh > Meshes。
- 点击需要升级的
Service Mesh Name进入网格详情。 - 在网格详情的 Mesh Deployment 区域,列出了服务网格已部署的集群列表。点击对应的
Cluster Name,在新标签页打开集群详情页面。 - 切换到集群详情页的 Components,点击升级按钮,将集群中服务网格的非 Istio 组件升级到最新版本。关于升级组件的详细文档,请参见 Upgrade Components。
注意:服务网格的非 Istio 组件包括 asm、Flagger Operator、Asm Operator、Jaeger Operator。
部署新版本的 istiod
注意:部署新版本的 istiod 前,请参考 升级前准备 确保集群的 Kubernetes 版本满足升级路径要求。
- 返回网格详情页,在 Mesh Deployment 区域,点击对应集群
Istio Version右侧的 Upgrade 按钮。弹窗中将显示 Istio 的升级路径。 - 点击弹窗中的 Upgrade 按钮。
检查集群中是否存在 EnvoyFilters
-
在 平台管理 左侧导航,点击 Service Mesh > EnvoyFilter。
注意:如果平台上存在多个服务网格,可以通过顶部导航栏切换至集群所在的服务网格。
-
检查 EnvoyFilter 列表中是否有数据。
- 如果无数据,检查完成。
- 如果有数据,请联系 EnvoyFilter 创建者将所有 EnvoyFilters 适配新版本的 Istio,或联系技术支持。
升级集群中所有 Istio 数据平面
集群中的 Istio 数据平面包括 Sidecars、ingress gateways 和 egress gateways。
方法一:通过交互式命令行工具升级
交互式命令行工具可批量升级集群中所有 Sidecars 和网关。此方法适合熟悉命令行操作的用户,尤其是需要一次性快速升级整个集群的场景。
注意:也可以使用无确认的快速升级参数执行升级。
注意:ingress 和 egress gateways 的滚动升级过程是先删除旧的 Pod,再创建新的 Pod,直到所有 Pod 都升级到新的数据平面镜像版本。因此,如果网关只有一个 Pod,升级期间该网关将不可访问。
方法二:通过 UI 升级
通过 UI 可按不同命名空间批量升级,或指定单个服务/网关升级。此方法适合喜欢图形界面操作的用户,尤其是需要灵活选择升级目标的场景。
升级 Ingress 和 Egress Gateways
- 在左侧导航栏,点击 Service Mesh > Gateways。
注意:在集群的网关列表中,Istio Version 右侧的
图标表示该网关的数据平面代理可升级。 - 点击 Istio Version 右侧的 Upgrade 按钮,确认升级。
升级 Sidecars
- 在 平台管理 左侧导航,点击 Service Mesh > Meshes。
- 点击需要升级 Sidecars 的
Service Mesh Name进入网格详情。 - 在网格详情的 Namespaces 区域,列出了服务网格管理的命名空间列表。点击对应的
Namespace Name,在新标签页打开该命名空间的 Service Mesh 页面,进入 Sidecar 所在的命名空间。 注意:请依次对所有命名空间执行 Sidecar 升级。 - 在左侧导航栏,点击 Service List。
注意:当
Service Name旁出现
图标时,表示该服务的 Sidecar 可升级。 - 点击 Batch Upgrade Sidecars。
注意:点击服务记录中
图标右侧的 Upgrade 按钮,可升级单个服务。 - 选择全部、单个或多个服务,然后点击 Upgrade。 注意:平台将通过滚动更新服务的 Deployment 来升级 Sidecar,更新 Pod 的数据平面镜像版本。若升级失败,请查看容器平台中的容器组事件以了解失败原因,或尝试 Re-upgrade。
注意:Sidecar 通过服务的 Deployment 滚动更新完成 Pod 的数据平面镜像升级。因此,如果服务存在长连接,滚动更新 Pod 期间会有短暂的服务中断。
退役集群中旧版本的 istiod
集群中旧版本的 istiod 只有在所有 Istio 数据平面升级完成后才能退役。
注意事项:
- 如果集群中旧版本的 istiod 未退役,将无法使用服务网格的添加集群和 Sidecar 配置功能。
- 当平台存在新可升级版本时,若任一集群未退役旧版本 istiod,平台无法升级。
- 在多集群服务网格中,所有集群完成 Istio 数据平面升级后,旧版本 istiod 才能按顺序逐个退役。
步骤
- 返回网格详情页,在 Mesh Deployment 区域,点击对应集群
Istio Version右侧的 Decommission Old Version 按钮,弹出 Decommission Old Version 窗口。 - 点击弹窗中的 Confirm 按钮。
注意:如果集群中存在未升级的数据平面,点击 Decommission Old Version 后,弹窗会显示集群中未升级的 ingress gateways、egress gateways 和 Sidecars,方便快速定位待升级的数据平面。