第 7 章 管理升级


本节提供了将 OpenShift Serverless Logic Operator 从版本 1.34.0 升级到 1.35.0 的逐步说明。升级过程涉及准备现有的工作流和服务,更新 Operator,并在升级后恢复工作流。

注意

不同的工作流配置集需要不同的升级步骤。请仔细遵循每个配置集的说明。

7.1.1. 准备升级

在开始升级过程前,您需要准备 OpenShift Serverless Logic 环境。本节概述了确保从 1.34.0 升级到 1.35.0 所需的步骤。

准备过程包括:

  • 根据配置集删除或扩展工作流。
  • 备份所有必要的数据库和资源。
  • 确保您有所有自定义配置的记录。
  • 使用持久性为工作流运行所需的数据库迁移脚本。

先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 已在集群中安装了 OpenShift Serverless Logic Operator。
  • 您可以使用适当的角色和权限访问 OpenShift Serverless Logic 项目,以便在 OpenShift Container Platform 中创建应用程序和其他工作负载。
  • 您可以访问 OpenShift Management Console 进行 Operator 升级。
  • 已安装 OpenShift CLI(oc)。

7.1.1.1. 使用 dev 配置集删除工作流

在升级 Operator 之前,您必须删除使用 dev 配置集运行的工作流,并在升级完成后重新部署它们。

流程

  1. 确保备份所有必要 Kubernetes 资源,包括 SonataFlow 自定义资源定义(CRD)、ConfigMap 或任何其他相关的自定义配置。
  2. 运行以下命令来删除工作流:

    $ oc delete -f <my-workflow.yaml> -n <target_namespace>
    Copy to Clipboard Toggle word wrap

7.1.1.2. 使用 preview 配置集删除和迁移工作流

在升级 Operator 前,您必须删除使用 Preview 配置集运行的工作流,并迁移保留的任何数据。升级完成后,您必须重新部署工作流。

流程

  1. 如果您使用持久性,备份工作流数据库并确保备份包含数据库对象和表数据。
  2. 确保备份所有必要 Kubernetes 资源,包括 SonataFlow CRD、ConfigMap 或任何其他相关的自定义配置。
  3. 运行以下命令来删除工作流:

    $ oc delete -f <my-workflow.yaml> -n <target_namespace>
    Copy to Clipboard Toggle word wrap
  4. 如果使用持久性,您必须执行以下数据库迁移脚本:

    ALTER TABLE flyway_schema_history
        RENAME CONSTRAINT flyway_schema_history_pk TO kie_flyway_history_runtime_persistence_pk;
    
    ALTER INDEX flyway_schema_history_s_idx
      RENAME TO kie_flyway_history_runtime_persistence_s_idx;
    
    ALTER TABLE flyway_schema_history RENAME TO kie_flyway_history_runtime_persistence;
    Copy to Clipboard Toggle word wrap

7.1.1.3. 使用 gitops 配置集缩减工作流

在升级 Operator 前,您必须使用 gitops 配置集缩减运行的工作流,并在升级完成后再次扩展它们。

流程

  1. 修改 my-workflow.yaml CRD,并在升级前将每个工作流 缩减为零,如下例所示:

    spec:
      podTemplate:
        replicas: 0
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来应用更新的 CRD:

    $ oc apply -f <my-workflow.yaml> -n <target_namespace>
    Copy to Clipboard Toggle word wrap
  3. (可选)运行以下命令来将工作流扩展到 0

    $ oc patch sonataflow <my-workflow> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 0}}}'
    Copy to Clipboard Toggle word wrap

7.1.1.4. 备份数据索引数据库

您必须在升级前备份 Data Index 数据库,以防止数据丢失。

流程

  • 对 Data Index 数据库进行完整备份,确保:

    • 备份包括所有数据库对象,而不仅仅是表数据。
    • 备份存储在安全位置。

7.1.1.5. 备份作业服务数据库

在升级前备份 Jobs Service 数据库,以维护作业调度数据。

流程

  • 对 Jobs Service 数据库进行完整备份,确保:

    • 备份包括所有数据库对象,而不仅仅是表数据。
    • 备份存储在安全位置。

7.1.2. 升级 OpenShift Serverless Logic Operator

要从 OpenShift Serverless Logic Operator (OSL)版本 1.34.0 过渡到 1.35.0,您必须使用 Red Hat OpenShift Serverless Web 控制台升级 OSL。此升级确保了与较新的功能兼容,并可以正常工作。

先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 已在集群中安装了 OpenShift Serverless Logic Operator。
  • 您可以使用适当的角色和权限访问 OpenShift Serverless Logic 项目,以便在 OpenShift Container Platform 中创建应用程序和其他工作负载。
  • 您可以访问 OpenShift Management Console 进行 Operator 升级。
  • 已安装 OpenShift CLI(oc)。

流程

  1. 在 Web 控制台中,导航到 Operators OperatorHub Installed Operator 页面。
  2. Installed Namespace 中选择 openshift-serverless-logic 命名空间。
  3. 在安装的 Operator 列表中,找到并点击 OpenShift Serverless Logic Operator。
  4. 在 Operator 详情页面中,点 Subscription 选项卡。点 Edit Subscription
  5. Upgrade status 中,单击 Upgrade available 链接。
  6. 单击 Preview 安装计划和 Approve 以开始更新。
  7. 要监控升级过程,请运行以下命令:

    $ oc get subscription logic-operator-rhel8 -n openshift-serverless-logic -o jsonpath='{.status.installedCSV}'
    Copy to Clipboard Toggle word wrap

    预期输出

    $ logic-operator-rhel8.v1.35.0
    Copy to Clipboard Toggle word wrap

验证

  1. 要验证是否安装了新的 Operator 版本,请运行以下命令:

    $ oc get clusterserviceversion logic-operator-rhel8.v1.35.0 -n openshift-serverless-logic
    Copy to Clipboard Toggle word wrap

    预期输出

    NAME                           DISPLAY                               VERSION   REPLACES                       PHASE
    logic-operator-rhel8.v1.35.0   OpenShift Serverless Logic Operator   1.35.0    logic-operator-rhel8.v1.34.0   Succeeded
    Copy to Clipboard Toggle word wrap

7.1.3. 最终调整升级

将 OpenShift Serverless Logic Operator 升级到 1.35.0 后,您必须恢复或扩展工作流并清理旧服务来完成升级过程。这样可确保您的系统在新版本中完全运行,且所有依赖的组件都已正确配置。

根据您的工作流和服务的配置集,请按照以下步骤操作。

先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 已在集群中安装了 OpenShift Serverless Logic Operator。
  • 您可以使用适当的角色和权限访问 OpenShift Serverless Logic 项目,以便在 OpenShift Container Platform 中创建应用程序和其他工作负载。
  • 您可以访问 OpenShift Management Console 进行 Operator 升级。
  • 已安装 OpenShift CLI(oc)。

7.1.3.1. 最终调整数据索引升级

Operator 升级后,会自动为 Data Index 1.35.0 创建新的 ReplicaSet。您必须手动删除旧的旧内容。

流程

  1. 运行以下命令列出所有 ReplicaSet 来验证新的 ReplicaSet 是否存在:

    $ oc get replicasets -n <target_namespace> -o custom-columns=Name:metadata.name,Image:spec.template.spec.containers[*].image
    Copy to Clipboard Toggle word wrap
  2. 识别旧的 Data Index ReplicaSet (使用版本 1.34.0)并删除它:

    $ oc delete replicaset <old_replicaset_name> -n <target_namespace>
    Copy to Clipboard Toggle word wrap

7.1.3.2. 最终调整作业服务升级

您必须手动清理旧版本中的 Jobs Service 组件,才能触发版本 1.35.0 组件的部署。

流程

  1. 运行以下命令来删除旧的 Jobs Service 部署:

    $ oc delete deployment <jobs-service-deployment-name> -n <target_namespace>
    Copy to Clipboard Toggle word wrap

    这将触发旧的 Pod 和 ReplicaSet 自动清理,并使用版本 1.35.0 启动新部署。

7.1.3.3. 使用 dev 配置集重新部署工作流

升级后,您必须重新部署使用 dev 配置集和任何关联的 Kubernetes 资源的工作流。

流程

  1. 确保恢复所有必需的资源,包括 SonataFlow CRD、ConfigMap 或任何其他相关的自定义配置。
  2. 运行以下命令来重新部署工作流:

    $ oc apply -f <my-workflow.yaml> -n <target_namespace>
    Copy to Clipboard Toggle word wrap

7.1.3.4. 使用 preview 配置集恢复工作流

带有 preview 配置集的工作流需要额外的配置步骤,然后才能重新部署。

流程

  1. 如果工作流使用持久性,请将以下属性添加到与工作流关联的 ConfigMap 中:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      labels:
        app: my-workflow
      name: my-workflow-props
    data:
      application.properties: |
        kie.flyway.enabled=true
    Copy to Clipboard Toggle word wrap
  2. 确保重新创建所有必需的资源,包括 SonataFlow CRD、ConfigMap 或任何其他相关的自定义配置。
  3. 运行以下命令来重新部署工作流:

    $ oc apply -f <my-workflow.yaml> -n <target_namespace>
    Copy to Clipboard Toggle word wrap

7.1.3.5. 使用 gitops 配置集扩展工作流

带有之前扩展的 gitops 配置集的工作流必须扩展才能继续操作。

流程

  1. 修改 my-workflow.yaml CRD,并在升级前将每个工作流扩展到 一个,如下例所示:

    spec:
      podTemplate:
        replicas: 1
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来应用更新的 CRD:

    $ oc apply -f <my-workflow.yaml> -n <target_namespace>
    Copy to Clipboard Toggle word wrap
  3. (可选)运行以下命令来将工作流扩展至 1

    $ oc patch sonataflow <my-workflow> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 1}}}'
    Copy to Clipboard Toggle word wrap

7.1.3.6. 验证升级

恢复工作流和服务后,务必要验证升级是否成功,并且所有组件都按预期工作。

流程

  1. 输入以下命令检查所有工作流和服务是否正在运行:

    $ oc get pods -n <target_namespace>
    Copy to Clipboard Toggle word wrap

    确保与工作流、数据索引和作业服务相关的所有 pod 都处于 RunningCompleted 状态。

  2. 输入以下命令验证 OpenShift Serverless Logic Operator 是否正确运行:

    $ oc get clusterserviceversion logic-operator-rhel8.v1.35.0 -n openshift-serverless-logic
    Copy to Clipboard Toggle word wrap

    预期输出

    NAME                           DISPLAY                               VERSION   REPLACES                       PHASE
    logic-operator-rhel8.v1.35.0   OpenShift Serverless Logic Operator   1.35.0    logic-operator-rhel8.v1.34.0   Succeeded
    Copy to Clipboard Toggle word wrap

  3. 输入以下命令检查 Operator 日志是否有任何错误:

    $ oc logs -l control-plane=sonataflow-operator -n openshift-serverless-logic
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat