1.3. 关于基于修订的策略


通常,使用 RevisionBased 策略执行的更新会运行 control plane 的两个修订。通过此功能,您可以逐步将工作负载从旧的 control plane 迁移到新的 control plane,从而使 Canary 升级成为可能。RevisionBased 策略还允许您通过多个次版本进行更新。

1.3.1. 选择 RevisionBased strategy

要使用 RevisionBased 策略部署 Istio,请使用以下 spec.updateStrategy 值 创建 Istio 资源:

选择 RevisionBased 策略的规格示例

kind: Istio
spec:
  version: 1.20.0
  updateStrategy: RevisionBased

为 Istio 资源选择策略后,Operator 会创建一个新的 IstioRevision 资源,其名称为 <istio resource name>-<version>。

1.3.2. 使用基于 Revision 的策略将工作负载附加到 control plane

要使用 RevisionBased 策略将工作负载附加到部署的 control plane,您必须将 istio.io/rev 命名空间 标签设置为 IstioRevision 的名称。另外,您可以将标签应用到工作负载 pod。

1.3.3. 执行基于修订的更新

当使用 RevisionBased 策略更新 Istio 时,您可以一次递增多个次版本,因为现有的 sidecar 不会自动连接到 control plane 的新修订版本。相反,您必须手动将工作负载移到新的 control plane。

先决条件

  • 已安装 Red Hat OpenShift Service Mesh Operator 并部署了 Istio。

流程

  1. 更改 Istio 资源中的版本:

    kind: Istio
    spec:
      version: 1.20.2
      updateStrategy:
        type: RevisionBased

    Service Mesh Operator 部署 control plane 的新版本,以及 control plane 的旧版本。sidecar 仍然连接到旧的 control plane。

  2. 确认 control plane 的两个修订版本正在运行并就绪:

    $ oc get istiorevisions
  3. 通过将应用程序命名空间中的 istio.io/rev 标签或 pod 更新至新 control plane 的修订名称,将工作负载移到新的 control plane 中。
  4. 重启应用程序工作负载,以便注入新版本的 sidecar。

    $ oc rollout restart <deployment>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.