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