使用 istioctl 命令升级 Istio [实验中]
以下信息描述了一个实验性功能,仅用于评估。
istioctl experimental upgrade
命令可为 Istio 进行升级。在进行升级之前,升级命令首先检查已安装的 Istio 是否符合升级要求。此外,如果升级命令检测到 Istio 版本间,配置中有任何默认值发生变化,都将及时提醒用户。
升级命令也可为 Istio 降级。
查看 istioctl
升级参考来获取 istioctl experimental upgrade
命令的更多功能。
升级前置条件
确保您在开始升级之前满足以下要求:
已安装 Istio 1.3.3 或更高版本。
Istio 是使用 istioctl 命令安装的。
升级步骤
升级过程中可能发生流量中断。为了缩短流量中断时间,请确保每个组件(Citadel 除外)至少运行有两个副本。同时,确保 PodDistruptionBudgets
配置最小可用性为 1。
本节中的命令应该使用新版本的 istioctl
命令运行,可以在下载包的 bin/
目录中找到该命令。
下载新版本 Istio 并切换目录为新版本目录。
查看支持的版本列表,验证
istoctl
命令是否支持从当前版本升级
$ istioctl manifest versions
- 确保 Kubernetes 配置指向要升级的集群:
$ kubectl config view
- 运行以下命令开始升级:
$ istioctl experimental upgrade -f `<your-custom-configuration-file>`
<your-custom-configuration-file>
是IstioControlPlane API Custom Resource Definition文件,该文件用于自定义安装当前运行版本的 Istio。
如果您安装 Istio 时,使用了 -f
选项,例如:istioctl manifest apply -f <IstioControlPlane-custom-resource-definition-file>
,那么 istioctl upgrade
命令也必须使用相同的 -f
选项参数值。
istioctl upgrade
命令不支持 —set
选项。因此,如果您的 Istio 是使用 —set
选项安装的,请创建一个与配置项等效的配置文件,并将其传递给 istioctl upgrade
命令。使用 -f
选项来加载配置文件。
如果省略了 -f
选项,Istio 将使用默认配置升级。
在执行多个步骤的检查后,istioctl
将要求您确认是否继续。
istioctl
将安装新版本的 Istio 控制平面,并显示完成状态。在使用
istioctl
命令升级完成后,必须手动重启包含 Istio sidecar 的 pod 来更新数据平面:
$ kubectl rollout restart deployment
降级前置条件
确保您在开始升级之前满足以下要求:
已安装 Istio 1.4 或更高版本。
Istio 是使用 istioctl 命令安装的。
降级命令
istioctl
的版本需要与要降级到的 Istio 版本相对应。例如:要将 Istio 从版本 1.4 降级到 1.3.3,需要使用 1.3.3 版本的istioctl
命令。
降级到 Istio 1.4 或更高版本的步骤
您也可以使用 istioctl upgrade
命令降级 Istio 版本。步骤与前一部分提到的升级步骤相同,即使用低版本 Istio 配套的 istioctl
命令来降级。降级完成后,Istio 将会恢复到运行 istioctl experimental upgrade
命令以前的安装版本。
降级到 Istio 1.3.3 或更低版本的步骤
istioctl experimental upgrade
命令在 Istio 1.3.3 及更低版本中是不可用的。因此,降级必须使用 istioctl experimental manifest apply
命令。
该命令与 istioctl experimental upgrade
命令安装的 Istio 控制平面相同,但不会进行任何检查。例如:配置文件中使用的默认值如果发生变化,将不会提醒用户。
相关内容
升级 Istio 控制平面,可以选择使用 Helm 升级 CNI 插件。
在 Istio 中配置和管理 DNS 证书。
一种更安全管理 Istio webhook 的方法。
揭秘 Istio 是如何将其数据平面组件添加到现有 deployment。
在 Docker Desktop 中运行 Istio 的设置说明。
关于 Istio 1.1 和 Istio 1.2 之间的 Helm chart 安装选项的变更。