升级
目录
安装最新的 Global Alauda Service Mesh Essentials 集群插件将最新的 Operators 上传到全局和目标集群升级业务集群组件升级前升级流程升级操作升级集群中 service mesh 的非 Istio 组件部署新版本的 istiod检查集群中是否存在 EnvoyFilters升级集群中所有的 Istio data planes退役集群中的旧版本 istiod安装最新的 Global Alauda Service Mesh Essentials 集群插件
请访问 Alauda Service Mesh Essentials 获取安装说明。
将最新的 Operators 上传到全局和目标集群
将以下 Operators 的最新版本上传到 global 集群和目标集群(请勿手动安装):
Alauda Service MeshOperatorFlaggerOperatorAlauda Build of JaegerOperatorAlauda Build of OpenTelemetryOperator
有关使用 violet 工具的上传操作步骤,请访问 安装 Operator。
使用 violet push 上传 operators 时,不要添加 --target-catalog-source 参数——请改为使用 operator 中定义的默认 catalog source。
升级业务集群组件
升级前
平台为 service mesh 中的 Istio 提供金丝雀升级,新版本的 istiod 组件会先部署。待所有 data plane 升级完成后,旧版本的 istiod 组件将被退役。
由于 Istio 版本与 Kubernetes 版本之间存在强依赖关系,在升级 Istio 之前,请确保集群当前的 Kubernetes 版本满足 Istio 的升级要求,以便成功完成金丝雀升级。
下表展示了当前平台版本支持的 Istio 升级路径及其对应所需的 Kubernetes 版本。
说明:
- 表中仅描述了 Istio 和 Kubernetes 的主版本;小版本不会影响兼容性。
- 你可以在 Components 列表中查看集群中当前运行的 Istio 和 Kubernetes 版本。
- 如果集群当前的 Kubernetes 版本低于 Istio 升级所需版本,则需要通过 升级组件 将 Kubernetes 升级到兼容版本。
- 有关更多信息,请参阅 Community 的 Istio 支持的 Kubernetes 版本。
升级流程
完整的 service mesh 升级流程包括以下步骤:
- 升级集群中 service mesh 的非 Istio 组件,例如 asm operator、flagger operator 等。
- 在集群中部署新版本的 istiod。
- 检查集群中是否存在 EnvoyFilters。
- 升级集群中所有的 Istio data planes。
- 退役集群中旧版本的 istiod。
升级操作
升级集群中 service mesh 的非 Istio 组件
- 在左侧导航的 Platform Management 中,点击 Service Mesh > Meshes。
- 点击需要升级的
Service Mesh Name,进入 mesh 详情。 - 在 mesh 详情的 Mesh Deployment 区域中,会列出已部署 service mesh 的集群列表。点击
Cluster Name,在新标签页中打开集群详情页面。 - 在集群详情页面切换到 Components,然后点击 upgrade,将集群中 service mesh 的非 Istio 组件升级到最新版本。有关升级组件的详细文档,请参见 升级组件。
说明:service mesh 的非 Istio 组件包括 asm、Flagger Operator、Asm Operator、Jaeger Operator。
部署新版本的 istiod
说明:在部署新版本的 istiod 之前,请先参阅 升级前,确保集群的 Kubernetes 版本满足升级路径要求。
- 返回 mesh 详情页面,在 Mesh Deployment 区域中,点击对应集群
Istio Version右侧的 Upgrade 按钮。弹窗中将显示 Istio 的升级路径。 - 点击弹窗中的 Upgrade 按钮。
检查集群中是否存在 EnvoyFilters
-
在左侧导航的 Platform Management 中,点击 Service Mesh > EnvoyFilter。
说明:如果平台上有多个 service mesh,可以通过顶部导航栏将 service mesh 切换到集群所在的那个。
-
检查 EnvoyFilter 列表中是否有数据。
- 如果没有数据,则检查完成。
- 如果有数据,请联系 EnvoyFilter 创建者,将所有 EnvoyFilters 适配到新版本的 Istio,或者联系技术支持。
升级集群中所有的 Istio data planes
集群中的 Istio data planes 包括 Sidecars、ingress gateways 和 egress gateways。
方法 1:通过交互式命令行工具升级
交互式命令行工具可以批量升级集群中的所有 Sidecars 和 gateways。此方法适用于熟悉命令行操作的用户,尤其适用于需要一次性快速升级整个集群的场景。
说明:你也可以使用无需确认的快速升级参数来执行升级。
说明:ingress 和 egress gateways 的滚动升级过程会先删除旧的 Pods,然后创建新的 Pods,直到所有 Pods 都更新为 data plane image 的新版本。因此,如果 gateway 只有一个 Pod,在 gateway 升级期间它将不可访问。
方法 2:通过 UI 升级
通过 UI 升级支持按不同 namespace 批量升级,或指定单个 service/gateway 进行升级。此方法适用于偏好在可视化界面中操作的用户,尤其适用于需要灵活选择升级目标的场景。
升级 Ingress 和 Egress Gateways
- 在左侧导航栏中,点击 Service Mesh > Gateways。
说明:在集群的 gateway 列表中,Istio Version 右侧的
图标表示该 gateway 的 data plane proxy 可以升级。 - 点击 Istio Version 右侧的 Upgrade 按钮,然后点击 Confirm。
升级 Sidecars
- 在左侧导航的 Platform Management 中,点击 Service Mesh > Meshes。
- 点击需要升级 Sidecars 的
Service Mesh Name,进入 mesh 详情。 - 在 mesh 详情的 Namespaces 区域中,会列出由 service mesh 管理的 namespace 列表。点击
Namespace Name,在新标签页中打开 Service Mesh 并进入 Sidecar 所在的 namespace。 说明:请按顺序对所有 namespace 执行 Sidecar 升级。 - 在左侧导航栏中,点击 Service List。
说明:当
Service Name旁边出现
图标时,表示该 service 的 Sidecar 可以升级。 - 点击 Batch Upgrade Sidecars。
说明:点击 service 记录中
图标右侧的 Upgrade 按钮,可升级单个 service。 - 选择全部、一个或多个 service,然后点击 Upgrade。 说明:平台会通过滚动更新不同当前版本和目标版本的 Sidecar Pods 来升级 service 的 Sidecar。如果升级失败,请在 Container Platform 中查看容器组事件以了解失败原因,或者尝试 Re-upgrade。
说明:Sidecar 通过对 service 的 Deployment 执行滚动更新来完成 Pod 的 data plane image 更新。因此,如果 service 存在长连接,在 Pod 滚动更新期间会有短暂的服务中断。
退役集群中的旧版本 istiod
只有在集群中所有 Istio data planes 都升级完成后,才能退役集群中的旧版本 istiod。
注意:
- 如果集群中的旧版本 istiod 未被退役,将无法使用 service mesh 的添加集群和 Sidecar 配置功能。
- 当平台上出现新的可升级版本时,如果任一集群尚未退役旧版本 istiod,平台将无法升级。
- 在多集群 service mesh 中,只有在所有集群都完成 Istio data plane 升级后,才能按顺序退役各集群中的旧版本 istiod。
步骤
- 返回 mesh 详情页面,在 Mesh Deployment 区域中,点击对应集群
Istio Version右侧的 Decommission Old Version 按钮。将显示 Decommission Old Version 弹窗。 - 点击弹窗中的 Confirm 按钮。
说明:如果集群中仍有未升级的数据平面,点击 Decommission Old Version 后,弹窗会显示集群中尚未升级的 ingress gateways、egress gateways 和 Sidecars,以便快速定位待升级的数据平面。