搜索

1.11.4.4. 将 Red Hat OpenShift Service Mesh 从版本 1.1 迁移到版本 2.0

download PDF

从版本 1.1 升级到 2.0 需要手动步骤将工作负载和应用程序迁移到运行新版本的 Red Hat OpenShift Service Mesh 的新实例中。

先决条件

  • 在升级到 Red Hat OpenShift Service Mesh 2.0 之前,您必须升级到 OpenShift Container Platform 4.7。
  • 您必须具有 Red Hat OpenShift Service Mesh 版本 2.0 operator。如果选择了 自动 升级路径,Operator 将自动下载最新信息。但是,您必须执行一些步骤来使用 Red Hat OpenShift Service Mesh 版本 2.0 中的功能。
1.11.4.4.1. 升级 Red Hat OpenShift Service Mesh

要升级 Red Hat OpenShift Service Mesh,必须在新命名空间中创建一个 Red Hat OpenShift Service Mesh ServiceMeshControlPlane v2 资源实例。然后,配置完成后,将微服务应用程序和工作负载从旧的网格移到新服务网格中。

流程

  1. 检查 v1 ServiceMeshControlPlane 资源配置,以确保它有效。

    1. 运行以下命令,将您的 ServiceMeshControlPlane 资源视为 v2 资源。

      $ oc get smcp -o yaml
    2. 查看输出中的 spec.techPreview.errored.message 字段,以了解有关任何无效字段的信息。
    3. 如果您的 v1 资源中存在无效字段,则该资源不会被协调,且无法作为 v2 资源编辑。v2 字段的所有更新都会被原始 v1 设置覆盖。要修复无效字段,可以替换、补丁或编辑资源的 v1 版本。您还可以在不修复的情况下删除资源。在资源修复后,它可以被协调,您可以修改或查看资源的 v2 版本。
    4. 要通过编辑文件来修复资源,请使用 oc get 检索资源,在本地编辑文本文件,并将资源替换为您编辑的文件。

      $ oc get smcp.v1.maistra.io <smcp_name> > smcp-resource.yaml
      #Edit the smcp-resource.yaml file.
      $ oc replace -f smcp-resource.yaml
    5. 要使用补丁修复资源,请使用 oc patch

      $ oc patch smcp.v1.maistra.io <smcp_name> --type json --patch '[{"op": "replace","path":"/spec/path/to/bad/setting","value":"corrected-value"}]'
    6. 要通过使用命令行工具编辑资源,请使用 oc edit

      $ oc edit smcp.v1.maistra.io <smcp_name>
  2. 备份 Service Mesh control plane 配置。切换到包含 ServiceMeshControlPlane 资源的项目。在本例中,istio-system 是 Service Mesh control plane 项目的名称。

    $ oc project istio-system
  3. 输入以下命令来检索当前的配置。您的 <smcp_name> 在您的 ServiceMeshControlPlane 资源元数据中指定,如 basic-installfull-install

    $ oc get servicemeshcontrolplanes.v1.maistra.io <smcp_name> -o yaml > <smcp_name>.v1.yaml
  4. ServiceMeshControlPlane 转换为 v2 control plane 版本,其包含您的配置信息作为起点。

    $ oc get smcp <smcp_name> -o yaml > <smcp_name>.v2.yaml
  5. 创建一个项目。在 OpenShift Container Platform 控制台项目菜单中,点 New Project,并为项目输入名称如 istio-system-upgrade。或者,您可以通过 CLI 运行这个命令。

    $ oc new-project istio-system-upgrade
  6. 使用新项目名称更新 v2 ServiceMeshControlPlane 中的 metadata.namespace 字段。在本例中,使用 istio-system-upgrade
  7. version 字段从 1.1 更新至 2.0,或将其从 v2 ServiceMeshControlPlane 中删除。
  8. 在新命名空间中创建一个 ServiceMeshControlPlane。在命令行中,运行以下命令,使用您检索的 ServiceMeshControlPlane 的 v2 版本部署 control plane。在这个示例中将 '<smcp_name.v2> ' 替换为您的文件的路径。

    $ oc create -n istio-system-upgrade -f <smcp_name>.v2.yaml

    另外,您可以使用控制台创建 Service Mesh control plane。在 OpenShift Container Platform web 控制台中点 Project。然后选择您刚刚输入的项目名称。

    1. Operators Installed Operators
    2. Create ServiceMeshControlPlane
    3. 选择 YAML view,把获取的 YAML 文件的内容复制到这个项。检查 apiVersion 字段是否已设置为 maistra.io/v2,并修改 metadata.namespace 字段以使用新命名空间,如 istio-system-upgrade
    4. Create
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.