10.2. 将 OpenShift Serverless Logic Operator 从 1.35.0 升级到 1.36.0
您可以将 OpenShift Serverless Logic Operator 从 1.35.0 升级到 1.36.0。升级过程涉及准备现有的工作流和服务,更新 Operator,并在升级后恢复工作流。
不同的工作流配置集需要不同的升级步骤。请仔细遵循每个配置集的说明。
10.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)。
10.2.1.1. 使用 dev 配置集删除工作流 复制链接链接已复制到粘贴板!
在升级 Operator 前,您必须删除使用 dev 配置集运行的工作流,并在升级完成后重新部署它们。
流程
-
确保备份所有必要 Kubernetes 资源,包括
SonataFlow自定义资源(CR)、ConfigMap资源或任何其他相关的自定义配置。 运行以下命令来删除工作流:
$ oc delete workflow <workflow_name> -n <target_namespace>
10.2.1.2. 使用 preview 配置集删除工作流 复制链接链接已复制到粘贴板!
在升级 Operator 前,您必须删除使用 preview 配置集运行的工作流。升级完成后,您必须重新部署工作流。
流程
- 如果您使用持久性,备份工作流数据库并确保备份包含数据库对象和表数据。
-
确保备份所有必要 Kubernetes 资源,包括
SonataFlow自定义资源(CR)、ConfigMap资源或任何其他相关的自定义配置。 运行以下命令来删除工作流:
$ oc delete workflow <workflow_name> -n <target_namespace>
10.2.1.3. 使用 gitops 配置集缩减工作流 复制链接链接已复制到粘贴板!
在升级 Operator 前,您必须使用 gitops 配置集缩减运行的工作流,并在升级完成后再次扩展它们。
流程
修改
my-workflow.yaml自定义资源(CR),并在升级前将每个工作流缩减为0,如下例所示:spec: podTemplate: replicas: 0 # ...运行以下命令来应用更新的
my-workflow.yamlCR:$ oc apply -f my-workflow.yaml -n <target_namespace>可选:运行以下命令来将工作流扩展到
0:$ oc patch workflow <workflow_name> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 0}}}'
10.2.1.4. 备份数据索引数据库 复制链接链接已复制到粘贴板!
您必须在升级前备份 Data Index 数据库,以防止数据丢失。
流程
对 Data Index 数据库进行完整备份,确保:
- 备份包括所有数据库对象,而不仅仅是表数据。
- 备份存储在安全位置。
10.2.1.5. 备份作业服务数据库 复制链接链接已复制到粘贴板!
在升级前备份 Jobs Service 数据库,以维护作业调度数据。
流程
对 Jobs Service 数据库进行完整备份,确保:
- 备份包括所有数据库对象,而不仅仅是表数据。
- 备份存储在安全位置。
10.2.2. 将 OpenShift Serverless Logic Operator 升级到 1.36.0 复制链接链接已复制到粘贴板!
您可以通过执行以下步骤将 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.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" } } ]'运行以下命令来删除当前的 Operator 部署:
$ oc delete deployment logic-operator-rhel8-controller-manager -n openshift-serverless-logic-
在 Web 控制台中,导航到 Operators
OperatorHub Installed Operators 页面。 - 在安装的 Operator 列表中,找到并点击名为 OpenShift Serverless Logic Operator 的 Operator。
- 启动 OpenShift Serverless Logic Operator 升级到 1.36.0。
验证
应用升级后,运行以下命令验证 Operator 是否正在运行并在
Succeeded阶段:$ oc get clusterserviceversion logic-operator-rhel8.v1.36.0输出示例
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
10.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)。
10.2.3.1. 最终调整数据索引升级 复制链接链接已复制到粘贴板!
在 Operator 升级后,如果您的部署被配置为使用 Knative Eventing Kafka Broker,您必须删除在 OpenShift Serverless Logic 1.35.0 版本中创建的旧 data-index-process-definition 触发器。另外,您还可以删除旧的 ReplicaSet 资源。
流程
运行以下命令列出所有触发器:
$ oc get triggers -n <target_namespace>输出示例
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根据生成的示例输出,运行以下命令来删除旧的
data-index-process-definition触发器:$ oc delete trigger data-index-process-definition-473e1ddbb3ca1d62768187eb80de99bca -n <target_namespace>删除后,会自动创建与 OpenShift Serverless Logic 1.36.0 兼容的新触发器。
可选:运行以下命令来识别旧的
ReplicaSet资源:$ oc get replicasets -o custom-columns=Name:metadata.name,Image:spec.template.spec.containers[*].image -n <target_namespace>输出示例
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可选:运行以下命令来删除旧的
ReplicaSet资源:$ oc delete replicaset <old_replicaset_name> -n <target_namespace>基于示例输出的命令示例
$ oc delete replicaset sonataflow-platform-data-index-service-1111111111 -n <target_namespace>
10.2.3.2. 最终调整作业服务升级 复制链接链接已复制到粘贴板!
在 OpenShift Serverless Operator 升级到 1.36.0 后,您可以选择删除旧的 ReplicaSet 资源。
流程
运行以下命令来识别旧的
ReplicaSet资源:$ oc get replicasets -o custom-columns=Name:metadata.name,Image:spec.template.spec.containers[*].image -n <target_namespace>输出示例
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运行以下命令来删除旧的
ReplicaSet资源:$ oc delete replicaset <old_replicaset_name> -n <target_namespace>基于示例输出的命令示例
$ oc delete replicaset sonataflow-platform-jobs-service-1111111111 -n <target_namespace>
10.2.3.3. 使用 dev 配置集重新部署工作流 复制链接链接已复制到粘贴板!
升级后,您必须重新部署使用 dev 配置集和任何关联的 Kubernetes 资源的工作流。
流程
-
在重新部署工作流前,请确保恢复所有所需的 Kubernetes 资源,包括带有
application.properties字段的ConfigMap。 运行以下命令来重新部署工作流:
$ oc apply -f <workflow_name> -n <target_namespace>
10.2.3.4. 使用 preview 配置集恢复工作流 复制链接链接已复制到粘贴板!
升级后,您必须重新部署使用 preview 配置集以及任何关联的 Kubernetes 资源的工作流。
流程
-
在重新部署工作流前,请确保恢复所有所需的 Kubernetes 资源,包括带有
application.properties字段的ConfigMap。 运行以下命令来重新部署工作流:
$ oc apply -f <workflow_name> -n <target_namespace>
10.2.3.5. 使用 gitops 配置集扩展工作流 复制链接链接已复制到粘贴板!
要继续操作,您必须扩展之前使用 gitops 配置集缩减的工作流。
流程
修改
my-workflow.yaml自定义资源(CR),并将每个工作流扩展到1,如下例所示:spec: podTemplate: replicas: 1 # ...运行以下命令来应用更新的 CR:
$ oc apply -f my-workflow.yaml -n <target_namespace>可选:运行以下命令来将工作流扩展至
1:$ oc patch workflow <workflow_name> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 1}}}'
10.2.4. 验证 1.36.0 升级 复制链接链接已复制到粘贴板!
恢复工作流和服务后,验证升级是否成功,且所有组件都可以正常工作。
流程
输入以下命令检查所有工作流和服务是否正在运行:
$ oc get pods -n <target_namespace>确保与工作流、数据索引和作业服务相关的所有 pod 都处于
Running或Completed状态。输入以下命令验证 OpenShift Serverless Logic Operator 是否正确运行:
$ oc get clusterserviceversion logic-operator-rhel8.v1.36.0 -n openshift-serverless-logic输出示例
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输入以下命令检查 Operator 日志是否有任何错误:
$ oc logs -l control-plane=sonataflow-operator -n openshift-serverless-logic