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

NOTE

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

操作步骤

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

    kubectl patch istiocni default --type='merge' -p '{"spec":{"version":"v1.30.4"}}'
  2. 运行以下命令,观察 istio-cni-node DaemonSet 推出新版本:

    kubectl rollout status daemonset/istio-cni-node -n istio-cni
  3. 推出完成后,运行以下命令,等待 IstioCNI 资源报告 Ready 条件:

    kubectl wait --for=condition=Ready istiocnis/default --timeout=5m
  4. 运行以下命令,确认新版本的 CNI plugin 已就绪:

    kubectl get istiocni default

    示例输出

    NAME      NAMESPACE   PROFILE   READY   STATUS    VERSION   AGE
    default   istio-cni             True    Healthy   v1.30.4   30m
  5. 运行以下命令,检查生成的 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 相同,或最多高出一个次要版本时,兼容性有效。