使用 Helm 升级

请遵循本指南使用 Helm 升级和配置环境模式安装。本指南假设您已使用先前版本的 Istio 执行了 使用 Helm 的环境模式安装

了解 ambient 模式升级

所有 Istio 升级都涉及升级控制平面、数据平面和 Istio CRD。由于环境数据平面分布在 两个组件 中,即 Ztunnel 和网关(包括 Waypoints),因此升级这些组件需要分步骤进行。此处简要介绍了控制平面和 CRD 的升级,但与 Sidecar 模式中升级这些组件的过程 基本相同。

与 Sidecar 模式类似,网关可以利用 版本标签 对(网关)升级(包括 Waypoints)进行细粒度控制,包括随时回滚到 Istio 控制平面的先前版本。但是,与 Sidecar 模式不同,Ztunnel 作为 DaemonSet 运行(每个节点一个代理),这意味着 Ztunnel 升级至少会影响整个节点。虽然在许多情况下这可能是可以接受的,但具有长期 TCP 连接的应用程序可能会中断。在这种情况下,建议在升级特定节点的 Ztunnel 之前使用节点隔离和驱逐。为简单起见,本文档将演示 Ztunnel 的就地升级,这可能涉及短暂的停机时间。

先决条件

准备升级

在升级 Istio 之前,建议您下载新版本的 istioctl,并运行 istioctl x precheck 以确保升级与您的环境兼容。输出应类似于以下内容

$ istioctl x precheck
✔ No issues found when checking the cluster. Istio is safe to install or upgrade!
  To get started, check out <https://istio.ac.cn/latest/docs/setup/getting-started/>

现在,更新 Helm 存储库

$ helm repo update istio
就地升级无需其他准备,请继续执行下一步。

升级控制平面

基础组件

在部署新版本的控制平面之前,必须先升级集群范围的自定义资源定义 (CRD)

$ helm upgrade istio-base istio/base -n istio-system

Istiod 控制平面

Istiod 控制平面管理和配置在网格内路由流量的代理。以下命令将安装控制平面的新实例,与当前实例并存,但不会引入任何新的网关代理或 Waypoints,也不会接管现有网关代理或 Waypoints 的控制权。

如果您自定义了 Istiod 安装,则可以重用先前升级或安装的 values.yaml 文件,以保持控制平面的一致性。

$ helm upgrade istiod istio/istiod -n istio-system --wait

CNI 节点代理

Istio CNI 节点代理负责检测添加到环境网格的 Pod,通知 Ztunnel 应在添加的 Pod 中建立代理端口,并在 Pod 网络命名空间内配置流量重定向。它不是数据平面或控制平面的一部分。

版本 1.x 的 CNI 与版本 1.x+1 和 1.x 的控制平面兼容。这意味着只要版本差异在小版本范围内,则必须先升级控制平面,然后再升级 Istio CNI。

$ helm upgrade istio-cni istio/cni -n istio-system

升级数据平面

Ztunnel DaemonSet

Ztunnel DaemonSet 是节点代理组件。版本 1.x 的 Ztunnel 与版本 1.x+1 和 1.x 的控制平面兼容。这意味着只要版本差异在小版本范围内,则必须先升级控制平面,然后再升级 Ztunnel。如果您之前自定义了 Ztunnel 安装,则可以重用先前升级或安装的 values.yaml 文件,以保持您的 数据平面 一致性。

$ helm upgrade ztunnel istio/ztunnel -n istio-system --wait

手动部署网关图表(可选)

使用 手动部署Gateway 必须使用 Helm 单独升级

$ helm upgrade istio-ingress istio/gateway -n istio-ingress
此信息是否有用?
您有什么改进建议?

感谢您的反馈!