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
配置集运行的工作流,并在升级完成后重新部署它们。
流程
-
确保备份所有必要 Kubernetes 资源,包括
SonataFlow
自定义资源(CR)、ConfigMap
资源或任何其他相关的自定义配置。 运行以下命令来删除工作流:
oc delete workflow <workflow_name> -n <target_namespace>
$ oc delete workflow <workflow_name> -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.1.2. 使用 preview 配置集删除工作流 复制链接链接已复制到粘贴板!
在升级 Operator 前,您必须删除使用 preview
配置集运行的工作流。升级完成后,您必须重新部署工作流。
流程
- 如果您使用持久性,备份工作流数据库并确保备份包含数据库对象和表数据。
-
确保备份所有必要 Kubernetes 资源,包括
SonataFlow
自定义资源(CR)、ConfigMap
资源或任何其他相关的自定义配置。 运行以下命令来删除工作流:
oc delete workflow <workflow_name> -n <target_namespace>
$ oc delete workflow <workflow_name> -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.1.3. 使用 gitops 配置集缩减工作流 复制链接链接已复制到粘贴板!
在升级 Operator 前,您必须使用 gitops
配置集缩减运行的工作流,并在升级完成后再次扩展它们。
流程
修改
my-workflow.yaml
自定义资源(CR),并在升级前将每个工作流缩减为0,
如下例所示:spec: podTemplate: replicas: 0 # ...
spec: podTemplate: replicas: 0 # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用更新的
my-workflow.yaml
CR:oc apply -f my-workflow.yaml -n <target_namespace>
$ oc apply -f my-workflow.yaml -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:运行以下命令来将工作流扩展到
0
:oc patch workflow <workflow_name> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 0}}}'
$ oc patch workflow <workflow_name> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 0}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.1.4. 备份数据索引数据库 复制链接链接已复制到粘贴板!
您必须在升级前备份 Data Index 数据库,以防止数据丢失。
流程
对 Data Index 数据库进行完整备份,确保:
- 备份包括所有数据库对象,而不仅仅是表数据。
- 备份存储在安全位置。
9.2.1.5. 备份作业服务数据库 复制链接链接已复制到粘贴板!
在升级前备份 Jobs Service 数据库,以维护作业调度数据。
流程
对 Jobs Service 数据库进行完整备份,确保:
- 备份包括所有数据库对象,而不仅仅是表数据。
- 备份存储在安全位置。
9.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)来更新部署标签:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除当前的 Operator 部署:
oc delete deployment logic-operator-rhel8-controller-manager -n openshift-serverless-logic
$ oc delete deployment logic-operator-rhel8-controller-manager -n openshift-serverless-logic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在 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
$ oc get clusterserviceversion logic-operator-rhel8.v1.36.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
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
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 Copied! Toggle word wrap Toggle overflow
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
资源。
流程
运行以下命令列出所有触发器:
oc get triggers -n <target_namespace>
$ oc get triggers -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据生成的示例输出,运行以下命令来删除旧的
data-index-process-definition
触发器:oc delete trigger data-index-process-definition-473e1ddbb3ca1d62768187eb80de99bca -n <target_namespace>
$ oc delete trigger data-index-process-definition-473e1ddbb3ca1d62768187eb80de99bca -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除后,会自动创建与 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>
$ oc get replicasets -o custom-columns=Name:metadata.name,Image:spec.template.spec.containers[*].image -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
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
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 Copied! Toggle word wrap Toggle overflow 可选:运行以下命令来删除旧的
ReplicaSet
资源:oc delete replicaset <old_replicaset_name> -n <target_namespace>
$ oc delete replicaset <old_replicaset_name> -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 基于示例输出的命令示例
oc delete replicaset sonataflow-platform-data-index-service-1111111111 -n <target_namespace>
$ oc delete replicaset sonataflow-platform-data-index-service-1111111111 -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.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>
$ oc get replicasets -o custom-columns=Name:metadata.name,Image:spec.template.spec.containers[*].image -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
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
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 Copied! Toggle word wrap Toggle overflow 运行以下命令来删除旧的
ReplicaSet
资源:oc delete replicaset <old_replicaset_name> -n <target_namespace>
$ oc delete replicaset <old_replicaset_name> -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 基于示例输出的命令示例
oc delete replicaset sonataflow-platform-jobs-service-1111111111 -n <target_namespace>
$ oc delete replicaset sonataflow-platform-jobs-service-1111111111 -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.3.3. 使用 dev 配置集重新部署工作流 复制链接链接已复制到粘贴板!
升级后,您必须重新部署使用 dev
配置集和任何关联的 Kubernetes 资源的工作流。
流程
-
在重新部署工作流前,请确保恢复所有所需的 Kubernetes 资源,包括带有
application.properties
字段的ConfigMap
。 运行以下命令来重新部署工作流:
oc apply -f <workflow_name> -n <target_namespace>
$ oc apply -f <workflow_name> -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.3.4. 使用 preview 配置集恢复工作流 复制链接链接已复制到粘贴板!
升级后,您必须重新部署使用 preview
配置集以及任何关联的 Kubernetes 资源的工作流。
流程
-
在重新部署工作流前,请确保恢复所有所需的 Kubernetes 资源,包括带有
application.properties
字段的ConfigMap
。 运行以下命令来重新部署工作流:
oc apply -f <workflow_name> -n <target_namespace>
$ oc apply -f <workflow_name> -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.3.5. 使用 gitops 配置集扩展工作流 复制链接链接已复制到粘贴板!
要继续操作,您必须扩展之前使用 gitops
配置集缩减的工作流。
流程
修改
my-workflow.yaml
自定义资源(CR),并将每个工作流扩展到1
,如下例所示:spec: podTemplate: replicas: 1 # ...
spec: podTemplate: replicas: 1 # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用更新的 CR:
oc apply -f my-workflow.yaml -n <target_namespace>
$ oc apply -f my-workflow.yaml -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:运行以下命令来将工作流扩展至
1
:oc patch workflow <workflow_name> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 1}}}'
$ oc patch workflow <workflow_name> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 1}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.4. 验证 1.36.0 升级 复制链接链接已复制到粘贴板!
恢复工作流和服务后,验证升级是否成功,且所有组件都可以正常工作。
流程
输入以下命令检查所有工作流和服务是否正在运行:
oc get pods -n <target_namespace>
$ oc get pods -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保与工作流、数据索引和作业服务相关的所有 pod 都处于
Running
或Completed
状态。输入以下命令验证 OpenShift Serverless Logic Operator 是否正确运行:
oc get clusterserviceversion logic-operator-rhel8.v1.36.0 -n openshift-serverless-logic
$ oc get clusterserviceversion logic-operator-rhel8.v1.36.0 -n openshift-serverless-logic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
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
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 Copied! Toggle word wrap Toggle overflow 输入以下命令检查 Operator 日志是否有任何错误:
oc logs -l control-plane=sonataflow-operator -n openshift-serverless-logic
$ oc logs -l control-plane=sonataflow-operator -n openshift-serverless-logic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow