第 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
配置集运行的工作流,并在升级完成后重新部署它们。
流程
-
确保备份所有必要 Kubernetes 资源,包括
SonataFlow
自定义资源定义(CRD)、ConfigMap
或任何其他相关的自定义配置。 运行以下命令来删除工作流:
oc delete -f <my-workflow.yaml> -n <target_namespace>
$ oc delete -f <my-workflow.yaml> -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.1.2. 使用 preview 配置集删除和迁移工作流 复制链接链接已复制到粘贴板!
在升级 Operator 前,您必须删除使用 Preview
配置集运行的工作流,并迁移保留的任何数据。升级完成后,您必须重新部署工作流。
流程
- 如果您使用持久性,备份工作流数据库并确保备份包含数据库对象和表数据。
-
确保备份所有必要 Kubernetes 资源,包括
SonataFlow
CRD、ConfigMap
或任何其他相关的自定义配置。 运行以下命令来删除工作流:
oc delete -f <my-workflow.yaml> -n <target_namespace>
$ oc delete -f <my-workflow.yaml> -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用持久性,您必须执行以下数据库迁移脚本:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.1.3. 使用 gitops 配置集缩减工作流 复制链接链接已复制到粘贴板!
在升级 Operator 前,您必须使用 gitops
配置集缩减运行的工作流,并在升级完成后再次扩展它们。
流程
修改
my-workflow.yaml
CRD,并在升级前将每个工作流缩减为零
,如下例所示:spec: podTemplate: replicas: 0
spec: podTemplate: replicas: 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用更新的 CRD:
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 sonataflow <my-workflow> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 0}}}'
$ oc patch sonataflow <my-workflow> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 0}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
)。
流程
-
在 Web 控制台中,导航到 Operators
OperatorHub Installed Operator 页面。 -
从 Installed Namespace 中选择
openshift-serverless-logic
命名空间。 - 在安装的 Operator 列表中,找到并点击 OpenShift Serverless Logic Operator。
- 在 Operator 详情页面中,点 Subscription 选项卡。点 Edit Subscription。
- 在 Upgrade status 中,单击 Upgrade available 链接。
- 单击 Preview 安装计划和 Approve 以开始更新。
要监控升级过程,请运行以下命令:
oc get subscription logic-operator-rhel8 -n openshift-serverless-logic -o jsonpath='{.status.installedCSV}'
$ oc get subscription logic-operator-rhel8 -n openshift-serverless-logic -o jsonpath='{.status.installedCSV}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 预期输出
logic-operator-rhel8.v1.35.0
$ logic-operator-rhel8.v1.35.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证是否安装了新的 Operator 版本,请运行以下命令:
oc get clusterserviceversion logic-operator-rhel8.v1.35.0 -n openshift-serverless-logic
$ oc get clusterserviceversion logic-operator-rhel8.v1.35.0 -n openshift-serverless-logic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 预期输出
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
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 Copied! Toggle word wrap Toggle overflow
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。您必须手动删除旧的旧内容。
流程
运行以下命令列出所有 ReplicaSet 来验证新的 ReplicaSet 是否存在:
oc get replicasets -n <target_namespace> -o custom-columns=Name:metadata.name,Image:spec.template.spec.containers[*].image
$ oc get replicasets -n <target_namespace> -o custom-columns=Name:metadata.name,Image:spec.template.spec.containers[*].image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 识别旧的 Data Index ReplicaSet (使用版本 1.34.0)并删除它:
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
7.1.3.2. 最终调整作业服务升级 复制链接链接已复制到粘贴板!
您必须手动清理旧版本中的 Jobs Service 组件,才能触发版本 1.35.0 组件的部署。
流程
运行以下命令来删除旧的 Jobs Service 部署:
oc delete deployment <jobs-service-deployment-name> -n <target_namespace>
$ oc delete deployment <jobs-service-deployment-name> -n <target_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这将触发旧的 Pod 和 ReplicaSet 自动清理,并使用版本 1.35.0 启动新部署。
7.1.3.3. 使用 dev 配置集重新部署工作流 复制链接链接已复制到粘贴板!
升级后,您必须重新部署使用 dev
配置集和任何关联的 Kubernetes 资源的工作流。
流程
-
确保恢复所有必需的资源,包括
SonataFlow
CRD、ConfigMap
或任何其他相关的自定义配置。 运行以下命令来重新部署工作流:
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
7.1.3.4. 使用 preview 配置集恢复工作流 复制链接链接已复制到粘贴板!
带有 preview
配置集的工作流需要额外的配置步骤,然后才能重新部署。
流程
如果工作流使用持久性,请将以下属性添加到与工作流关联的
ConfigMap
中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
确保重新创建所有必需的资源,包括
SonataFlow
CRD、ConfigMap
或任何其他相关的自定义配置。 运行以下命令来重新部署工作流:
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
7.1.3.5. 使用 gitops 配置集扩展工作流 复制链接链接已复制到粘贴板!
带有之前扩展的 gitops
配置集的工作流必须扩展才能继续操作。
流程
修改
my-workflow.yaml
CRD,并在升级前将每个工作流扩展到一个
,如下例所示:spec: podTemplate: replicas: 1
spec: podTemplate: replicas: 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用更新的 CRD:
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 sonataflow <my-workflow> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 1}}}'
$ oc patch sonataflow <my-workflow> -n <target_namespace> --type=merge -p '{"spec": {"podTemplate": {"replicas": 1}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.3.6. 验证升级 复制链接链接已复制到粘贴板!
恢复工作流和服务后,务必要验证升级是否成功,并且所有组件都按预期工作。
流程
输入以下命令检查所有工作流和服务是否正在运行:
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.35.0 -n openshift-serverless-logic
$ oc get clusterserviceversion logic-operator-rhel8.v1.35.0 -n openshift-serverless-logic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 预期输出
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
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 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