Istio CNI 更新流程
Istio Container Network Interface (CNI) 更新流程使用原地更新。当 IstioCNI 资源发生变化时,DaemonSet 会自动使用指定版本的 CNI 插件替换现有的 istio-cni-node Pod。
你可以使用以下字段来管理版本更新:
-
spec.version定义要安装的 CNI 插件版本。请以
vX.Y.Z的格式指定该值,其中X.Y.Z表示所需版本。例如,使用v1.28.6安装 CNI 插件版本1.28.6。
要更新 CNI 插件,请使用目标版本修改 spec.version 字段。IstioCNI 资源还包含一个 values 字段,用于公开 istio-cni chart 中的配置选项。
当 mesh 运行在 ambient 模式下时,Istio CNI 组件负责流量重定向。如果你使用 RevisionBased 策略进行升级,同一个 CNI 组件会继续与之前的控制平面版本兼容,并在迁移期间为现有和新部署的控制平面持续执行流量重定向。
Istio CNI 支持运行相同次要版本的控制平面,或最多比 CNI 高一个次要版本的控制平面。
在完成 Istio 控制平面升级后,继续升级 Istio CNI 组件。Alauda Service Mesh v2 Operator 会推出新的 CNI 插件版本来替换之前的部署。随后,istio-cni-node DaemonSet 中的 Pod 会通过滚动更新进行刷新,从而在整个升级窗口内保持流量重定向规则生效。
更新 Istio CNI 资源版本
你可以通过更改资源中的版本来更新 Istio CNI 资源版本。然后,Service Mesh v2 Operator 会部署一个新版本的 CNI 插件,用于替换旧版本的 CNI 插件。istio-cni-node Pod 会自动重新连接到新的 CNI 插件。
前提条件
- 你已使用 cluster-admin 身份登录 Alauda Container Platform Web 控制台。
- 你已安装 Alauda Service Mesh v2 Operator,并已部署 Istio。
- 你已安装所需版本的 Istio CNI 插件。在此示例中,名为
default的IstioCNI资源已部署在istio-cni命名空间中。 - 根据所选的更新策略,你已完成控制平面的准备工作:对于
InPlace策略,Istio 控制平面已升级到目标版本;对于RevisionBased策略,已创建新的控制平面修订版本。
操作步骤
-
更改
Istio资源中的版本。例如,要更新到 Istio1.28.6,请通过运行以下命令将spec.version字段设置为v1.28.6: -
补丁应用后,通过运行以下命令等待
IstioCNIDaemonSet 报告Ready状态: -
通过运行以下命令确认新的 CNI 插件版本已就绪:
示例输出
-
通过运行以下命令检查生成的 CNI Pod:
示例输出
NOTE如果你采用
RevisionBased策略,Istio CNI 组件可以同时与多个控制平面版本互操作。在迁移期间,该组件会持续为之前和新部署的控制平面处理流量重定向。当控制平面运行的次要版本与 CNI 相同,或者最多高出一个次要版本时,兼容性仍然成立。