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 组件会继续与之前的控制平面版本兼容,并在迁移期间为现有和新部署的控制平面持续执行流量重定向。

NOTE

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 插件。在此示例中,名为 defaultIstioCNI 资源已部署在 istio-cni 命名空间中。
  • 根据所选的更新策略,你已完成控制平面的准备工作:对于 InPlace 策略,Istio 控制平面已升级到目标版本;对于 RevisionBased 策略,已创建新的控制平面修订版本。

操作步骤

  1. 更改 Istio 资源中的版本。例如,要更新到 Istio 1.28.6,请通过运行以下命令将 spec.version 字段设置为 v1.28.6

    kubectl patch istiocni default --type='merge' -p '{"spec":{"version":"v1.28.6"}}'
  2. 补丁应用后,通过运行以下命令等待 IstioCNI DaemonSet 报告 Ready 状态:

    kubectl wait --for=condition=Ready istiocnis/default --timeout=5m
  3. 通过运行以下命令确认新的 CNI 插件版本已就绪:

    kubectl get istiocni default

    示例输出

    NAME      NAMESPACE   PROFILE   READY   STATUS    VERSION   AGE
    default   istio-cni             True    Healthy   v1.28.6   30m
  4. 通过运行以下命令检查生成的 CNI Pod:

    kubectl get pods -n istio-cni

    示例输出

    NAME                   READY   STATUS    RESTARTS   AGE
    istio-cni-node-225z6   1/1     Running   0          2m
    istio-cni-node-97j9k   1/1     Running   0          2m
    istio-cni-node-c4fw6   1/1     Running   0          2m
    NOTE

    如果你采用 RevisionBased 策略,Istio CNI 组件可以同时与多个控制平面版本互操作。在迁移期间,该组件会持续为之前和新部署的控制平面处理流量重定向。当控制平面运行的次要版本与 CNI 相同,或者最多高出一个次要版本时,兼容性仍然成立。