Istio CNI 更新过程
Istio Container Network Interface (CNI) 的更新过程使用原地更新。当 IstioCNI 资源发生更改时,daemonset 会自动将现有的 istio-cni-node pod 替换为指定版本的 CNI 插件。
你可以使用以下字段来管理版本更新:
-
spec.version定义要安装的 CNI 插件版本。请以
vX.Y.Z的格式指定该值,其中X.Y.Z表示所需版本。例如,使用v1.28.6安装版本为1.28.6的 CNI 插件。
要更新 CNI 插件,请将 spec.version 字段修改为目标版本。IstioCNI 资源还包含一个 values 字段,用于暴露 istio-cni chart 的配置选项。
当 mesh 运行在 ambient 模式下时,Istio CNI 组件负责流量重定向。如果你使用 RevisionBased 策略进行升级,同一个 CNI 组件会继续与之前的控制平面版本兼容,并在迁移期间为现有控制平面和新部署的控制平面持续重定向流量。
Istio CNI 支持运行与其相同的 minor 版本的控制平面,或比其高一个 minor 版本的控制平面。
在完成 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: -
通过运行以下命令,观察
istio-cni-nodeDaemonSet 滚动推出新版本: -
在滚动更新完成后,通过运行以下命令等待
IstioCNI资源报告Ready状态: -
通过运行以下命令确认新版本的 CNI 插件已就绪:
示例输出
-
通过运行以下命令检查生成的 CNI pod:
示例输出
NOTE如果你采用
RevisionBased策略,Istio CNI 组件可以同时与多个控制平面版本互操作。在迁移期间,该组件会继续为之前部署的控制平面和新部署的控制平面处理流量重定向。当控制平面运行的 minor 版本与 CNI 相同,或者最多高一个 minor 版本时,兼容性成立。