9.2. 将 OpenShift Serverless Logic Operator 从 1.35.0 升级到 1.36.0


您可以将 OpenShift Serverless Logic Operator 从 1.35.0 升级到 1.36.0。升级过程涉及准备现有的工作流和服务,更新 Operator,并在升级后恢复工作流。

注意

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

9.2.1. 准备升级

在开始升级过程前,您需要准备 OpenShift Serverless Logic 环境,以便从 1.35.0 升级到 1.36.0。

准备过程如下:

  • 根据配置集删除或扩展工作流。
  • 备份所有必要的数据库和资源。
  • 确保您有所有自定义配置的记录。

先决条件

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

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

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

流程

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

    $ oc delete workflow <workflow_name> -n <target_namespace>
    Copy to Clipboard Toggle word wrap

9.2.1.2. 使用 preview 配置集删除工作流

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

流程

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

    $ oc delete workflow <workflow_name> -n <target_namespace>
    Copy to Clipboard Toggle word wrap

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

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

流程

  1. 修改 my-workflow.yaml 自定义资源(CR),并在升级前将每个工作流缩减为 0, 如下例所示:

    spec:
      podTemplate:
        replicas: 0
      # ...
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来应用更新的 my-workflow.yaml CR:

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

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

9.2.1.4. 备份数据索引数据库

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

流程

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

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

9.2.1.5. 备份作业服务数据库

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

流程

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

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

您可以通过执行以下步骤将 OpenShift Serverless Logic Operator 从 1.35.0 升级到 1.36.0。

先决条件

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

流程

  1. 运行以下命令,修补 1.35.0 OpenShift Serverless Logic Operator 的 ClusterServiceVersion (CSV)来更新部署标签:

    $ oc patch csv logic-operator-rhel8.v1.35.0 \
      -n openshift-serverless-logic \
      --type=json \
      -p='[
        {
          "op": "replace",
          "path": "/spec/install/spec/deployments/0/spec/selector/matchLabels",
          "value": {
            "app.kubernetes.io/name": "sonataflow-operator"
          }
        },
        {
          "op": "replace",
          "path": "/spec/install/spec/deployments/0/label",
          "value": {
            "app.kubernetes.io/name": "sonataflow-operator"
          }
        },
        {
          "op": "replace",
          "path": "/spec/install/spec/deployments/0/spec/template/metadata/labels",
          "value": {
            "app.kubernetes.io/name": "sonataflow-operator"
          }
        }
      ]'
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来删除当前的 Operator 部署:

    $ oc delete deployment logic-operator-rhel8-controller-manager -n openshift-serverless-logic
    Copy to Clipboard Toggle word wrap
  3. 在 Web 控制台中,导航到 Operators OperatorHub Installed Operators 页面。
  4. 在安装的 Operator 列表中,找到并点击名为 OpenShift Serverless Logic Operator 的 Operator。
  5. 启动 OpenShift Serverless Logic Operator 升级到 1.36.0。

验证

  • 应用升级后,运行以下命令验证 Operator 是否正在运行并在 Succeeded 阶段:

    $ oc get clusterserviceversion logic-operator-rhel8.v1.36.0
    Copy to Clipboard Toggle word wrap

    输出示例

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

9.2.3. 最终调整升级

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

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

先决条件

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

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

在 Operator 升级后,如果您的部署被配置为使用 Knative Eventing Kafka Broker,您必须删除在 OpenShift Serverless Logic 1.35.0 版本中创建的旧 data-index-process-definition 触发器。另外,您还可以删除旧的 ReplicaSet 资源。

流程

  1. 运行以下命令列出所有触发器:

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

    输出示例

    NAME                                                              BROKER              SUBSCRIBER_URI
    data-index-jobs-a25c8405-f740-47d2-a9a5-f80ccaec2955              example-broker      http://sonataflow-platform-data-index-service.<target_namespace>.svc.cluster.local/jobs
    data-index-process-definition-473e1ddbb3ca1d62768187eb80de99bca   example-broker      http://sonataflow-platform-data-index-service.<target_namespace>.svc.cluster.local/definitions
    data-index-process-error-a25c8405-f740-47d2-a9a5-f80ccaec2955     example-broker      http://sonataflow-platform-data-index-service.<target_namespace>.svc.cluster.local/processes
    data-index-process-instance-mul07f593476e8c14353a337590e0bfd5ae   example-broker      http://sonataflow-platform-data-index-service.<target_namespace>.svc.cluster.local/processes
    data-index-process-node-a25c8405-f740-47d2-a9a5-f80ccaec2955      example-broker      http://sonataflow-platform-data-index-service.<target_namespace>.svc.cluster.local/processes
    data-index-process-state-a25c8405-f740-47d2-a9a5-f80ccaec2955     example-broker      http://sonataflow-platform-data-index-service.<target_namespace>.svc.cluster.local/processes
    data-index-process-variable-487e9a6777fff650e60097c9e17111aea25   example-broker      http://sonataflow-platform-data-index-service.<target_namespace>.svc.cluster.local/processes
    
    jobs-service-create-job-a25c8405-f740-47d2-a9a5-f80ccaec2955      example-broker      http://sonataflow-platform-jobs-service.<target_namespace>.svc.cluster.local/v2/jobs/events
    jobs-service-delete-job-a25c8405-f740-47d2-a9a5-f80ccaec2955      example-broker      http://sonataflow-platform-jobs-service.<target_namespace>.svc.cluster.local/v2/jobs/events
    Copy to Clipboard Toggle word wrap

  2. 根据生成的示例输出,运行以下命令来删除旧的 data-index-process-definition 触发器:

    $ oc delete trigger data-index-process-definition-473e1ddbb3ca1d62768187eb80de99bca -n <target_namespace>
    Copy to Clipboard Toggle word wrap

    删除后,会自动创建与 OpenShift Serverless Logic 1.36.0 兼容的新触发器。

  3. 可选:运行以下命令来识别旧的 ReplicaSet 资源:

    $ oc get replicasets -o custom-columns=Name:metadata.name,Image:spec.template.spec.containers[*].image -n <target_namespace>
    Copy to Clipboard Toggle word wrap

    输出示例

    Name                                                Image
    sonataflow-platform-data-index-service-1111111111   registry.redhat.io/openshift-serverless-1/logic-data-index-postgresql-rhel8:1.35.0
    
    sonataflow-platform-data-index-service-2222222222   registry.redhat.io/openshift-serverless-1/logic-data-index-postgresql-rhel8:1.36.0
    Copy to Clipboard Toggle word wrap

  4. 可选:运行以下命令来删除旧的 ReplicaSet 资源:

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

    基于示例输出的命令示例

    $ oc delete replicaset sonataflow-platform-data-index-service-1111111111 -n <target_namespace>
    Copy to Clipboard Toggle word wrap

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

在 OpenShift Serverless Operator 升级到 1.36.0 后,您可以选择删除旧的 ReplicaSet 资源。

流程

  1. 运行以下命令来识别旧的 ReplicaSet 资源:

    $ oc get replicasets -o custom-columns=Name:metadata.name,Image:spec.template.spec.containers[*].image -n <target_namespace>
    Copy to Clipboard Toggle word wrap

    输出示例

    Name                                                Image
    sonataflow-platform-jobs-service-1111111111         registry.redhat.io/openshift-serverless-1/logic-jobs-service-postgresql-rhel8:1.35.0
    sonataflow-platform-jobs-service-2222222222         registry.redhat.io/openshift-serverless-1/logic-jobs-service-postgresql-rhel8:1.36.0
    Copy to Clipboard Toggle word wrap

  2. 运行以下命令来删除旧的 ReplicaSet 资源:

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

    基于示例输出的命令示例

    $ oc delete replicaset sonataflow-platform-jobs-service-1111111111 -n <target_namespace>
    Copy to Clipboard Toggle word wrap

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

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

流程

  1. 在重新部署工作流前,请确保恢复所有所需的 Kubernetes 资源,包括带有 application.properties 字段的 ConfigMap
  2. 运行以下命令来重新部署工作流:

    $ oc apply -f <workflow_name> -n <target_namespace>
    Copy to Clipboard Toggle word wrap

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

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

流程

  1. 在重新部署工作流前,请确保恢复所有所需的 Kubernetes 资源,包括带有 application.properties 字段的 ConfigMap
  2. 运行以下命令来重新部署工作流:

    $ oc apply -f <workflow_name> -n <target_namespace>
    Copy to Clipboard Toggle word wrap

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

要继续操作,您必须扩展之前使用 gitops 配置集缩减的工作流。

流程

  1. 修改 my-workflow.yaml 自定义资源(CR),并将每个工作流扩展到 1,如下例所示:

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

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

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

9.2.4. 验证 1.36.0 升级

恢复工作流和服务后,验证升级是否成功,且所有组件都可以正常工作。

流程

  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.36.0 -n openshift-serverless-logic
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                           DISPLAY                               VERSION   REPLACES                       PHASE
    logic-operator-rhel8.v1.36.0   OpenShift Serverless Logic Operator   1.36.0    logic-operator-rhel8.v1.35.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