automation-suite
2024.10
true
重要 :
请注意,此内容已使用机器翻译进行了部分本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

OpenShift 上的 Automation Suite 安装指南

上次更新日期 2025年5月30日

在 Automation Suite 集群之间迁移

关于集群迁移

如果您使用uipath命名空间而不是自定义命名空间,并希望从一个 Automation Suite 版本迁移到另一个版本,则可以从一个 Automation Suite 集群迁移到另一个集群。 我们支持以下场景:
  • 从 Linux 上的 Automation Suite 迁移到 EKS/AKS 上新安装的 Automation Suite;

  • 从 EKS/AKS 上的 Automation Suite 迁移到 OpenShift 上新安装的 Automation Suite;

  • 从 OpenShift 上的 Automation Suite 迁移到 EKS/AKS 上新安装的 Automation Suite;

  • 从 EKS 上的 Automation Suite 迁移到 AKS 上的 Automation Suite,或从 AKS 上的 Automation Suite 迁移到 EKS 上的 Automation Suite。

请注意,您可以多次尝试执行迁移操作,而不会影响现有集群。

不支持以下迁移场景:

  • 从 Linux 上的 Automation Suite 迁移到 EKS/AKS 上 Automation 或 OpenShift 上 Automation Suite 的现有安装;

  • 将 OpenShift 上的 Automation Suite 集群迁移到 Linux 上的 Automation Suite 集群。

流程概述

步骤

描述

1.

必填项。 请确保您满足迁移要求。

2.

必填项。 为源集群和目标集群准备目标集群以及 Docker 映像。

可选。如果您的部署处于离线状态或者您使用私有 OCI 注册表,请确保提供所需的映像。

3.

必填项。 开始迁移,移动数据,然后运行 Automation Suite 安装。

4.

可选。 如果在源集群和目标集群上都启用了 AI Center,请迁移技能。

要求

要从一个 Automation Suite 集群迁移到另一个集群,您必须满足以下要求:

  • 下载以下工件:

  • 您必须在两个环境之间建立连接。

  • 您必须在源集群中配置外部对象存储。如果您使用集群内存储,请参阅将集群内对象存储迁移到外部对象存储

  • 如果您从 Linux 上的 Automation Suite 进行迁移,则源集群的版本必须为 2022.10 或更高版本。

  • 如果您迁移到 OpenShift 上的 Automation Suite,则源集群的版本必须为 2023.10 或更高版本。

  • “仅限离线”要求:您必须结合使用目标集群。

数据迁移和职责

数据

迁移机制

状态职责

SQL

保留

您有两个选择:

  1. 在新安装中重用相同的数据库。将集群配置的 SQL 连接字符串指向现有数据库服务器。

  2. 克隆您的数据库并改用克隆。

客户

Docker 注册表

未迁移

如果使用私有注册表,则必须结合使用目标注册表。如果对目标集群使用 registry.uipath.com,则无需其他步骤。

客户

FQDN

可选

您必须为新集群选择新的 FQDN。或者,您可以根据需要还原为以前的 FQDN。

客户
证书

未迁移

您必须将证书作为新集群安装的一部分。

客户
集群配置

未迁移

您必须生成适用于目标集群类型(AKS 或 EKS)的新 input.json
客户
用户创建的自定义警示和仪表板

未迁移

您必须在迁移后重新配置自定义警示和仪表板。

客户
用户创建的应用程序日志/Prometheus 流配置

未迁移

您必须重新配置应用程序日志和 Prometheus 流。

客户
动态工作负载

取决于应用程序

AI Center 训练作业会丢失;技能会保留。

技能(升级后需要执行的脚本):UiPath™

训练作业:客户机

对象存储

外部对象存储:保留

对于外部对象存储,您有两个选项:

  1. 重用现有的外部对象存储,并将其连接到新环境。

  2. 创建当前对象存储的副本,并将其用于新设置。

重要提示:如果您使用的是集群内对象存储,则必须在升级前执行 ceph 到外部的迁移。

从集群内迁移到外部对象存储:Customer

外部对象存储:UiPath™

Insights

保留

UiPath™

MongoDB 数据

保留

MongoDB 数据将移至目标 SQL。

UiPath™

RabbitMQ

不需要

UiPath™

监控(数据)

不需要

监控数据不适用于新集群。

不适用

准备集群迁移

准备目标集群

备注:

开始迁移流程后,请勿修改源集群。

要准备目标集群,请执行以下步骤:

  1. 在源集群上下载input.json的目标版本,并通过运行以下命令生成input.json文件:
    uipathctl manifest get-revisionuipathctl manifest get-revision
    有关详细信息,请参考下图:
    docs image
  2. 根据先前生成的 input.json 文件,修改目标集群的 input.json 文件。

    您必须转移特定于 Orchestrator 的配置,其中包括每个租户的加密密钥Azure/Amazon S3 存储桶设置。

    备注:

    用于 Process Mining 的专用 Microsoft SQL Server 和 PostgreSQL Airflow 数据库是 2024.10.3 或更高版本的推荐选项。

    如果从 2024.10.3 之前的版本进行迁移,则为目标集群生成的input.json文件不包含 Airflow PostgreSQL 数据库的连接字符串。要使用需要 PostgreSQL 的最新版本 Airflow,您需要在迁移之前手动将 PostgreSQL 的sqlalchemy连接字符串模板添加到目标集群的input.json文件中。

    Postgresql_connection_string_template_sqlalchemy_pyodbc

    postgresql+psycopg2://<user>:<password>@<postgresql host>:<postgresql port>/DB_NAME_PLACEHOLDERpostgresql+psycopg2://<user>:<password>@<postgresql host>:<postgresql port>/DB_NAME_PLACEHOLDER
  3. 通过运行以下命令验证目标集群中的先决条件:
    uipathctl prereq run input-target.json --kubeconfig kubeconfig.target --versions versions.jsonuipathctl prereq run input-target.json --kubeconfig kubeconfig.target --versions versions.json
    备注:
    input-target.json是与目标集群对应的input.json文件。
  4. 将 SQL 数据库从源部署克隆到目标部署。

在无法访问互联网的情况下结合使用符合 OCI 的注册表

迁移过程需要最新的 uipathcore Docker 映像标签,以便源集群和目标集群都可用使用该标签。如果源集群处于离线状态,请通过执行以下步骤使映像可用:
  1. 请按照选项 B:将离线捆绑包与注册表结合使用中的步骤将目标集群使用的注册表与离线捆绑包结合使用。
  2. 在有权访问源集群的虚拟机上复制 uipathctl 二进制文件和 versions.json 文件。
  3. 运行以下命令:
    jq -r '.[][] | select(.name=="uipath/uipathcore") | .ref + ":" + .version' "/path/to/versions.json" > images.txtjq -r '.[][] | select(.name=="uipath/uipathcore") | .ref + ":" + .version' "/path/to/versions.json" > images.txt
  4. uipathcore映像从目标集群的注册表添加到源集群的注册表:
    ./uipathctl registry seed --tag-file ./images.txt \
                --source-registry "target.registry.fqdn.com" \
                --source-password "target-registry-username" \
                --source-username "target-registry-password" \
                --dest-registry "source.registry.fqdn.com" \
                --dest-username "source-registry-username" \
                --dest-password "source-registry-password"./uipathctl registry seed --tag-file ./images.txt \
                --source-registry "target.registry.fqdn.com" \
                --source-password "target-registry-username" \
                --source-username "target-registry-password" \
                --dest-registry "source.registry.fqdn.com" \
                --dest-username "source-registry-username" \
                --dest-password "source-registry-password"
    注意:确保按如下方式更新命令:
    • target.registry.fqdn.comtarget.registry.fqdn.comtarget-registry-password替换为与目标集群关联的注册表对应的适当值;
    • source.registry.fqdn.comsource.registry.fqdn.comsource-registry-password替换为对应于关联源集群的注册表的正确值。

结合使用互联网访问的符合 OCI 的注册表

如果使用私有注册表,则必须为它设置种子。有关说明,请参阅配置符合 OCI 的注册表

运行集群迁移

要迁移到目标 Automation Suite 集群,请执行以下步骤:

  1. 通过运行以下命令执行迁移:
    uipathctl cluster migration run input-target.json --kubeconfig kubeconfig.source --target-kubeconfig kubeconfig.target --versions versions-target.jsonuipathctl cluster migration run input-target.json --kubeconfig kubeconfig.source --target-kubeconfig kubeconfig.target --versions versions-target.json
  2. 通过运行以下命令,在目标集群上完成 Automation Suite 安装:
    uipathctl manifest apply input-target.json --kubeconfig kubeconfig.target --versions versions-target.jsonuipathctl manifest apply input-target.json --kubeconfig kubeconfig.target --versions versions-target.json

迁移 AI Center 技能

仅当您在源集群和目标集群上都启用了 AI Center 时,本部分中的步骤才适用。请注意,这些说明假定目标集群上的 AI Center 指向包含用于运行技能的技能数据的数据库。

完成迁移后,您必须同步 AI Center 技能,以便再次使用。

检查技能迁移状态

要检索 EKS/AKS 集群上目标 Automation Suite 的技能状态,请执行以下步骤:
  1. 设置用于执行后续命令的变量。
    aicJobsImage=$(kubectl -n <uipath> get configmap aic-jobs-config -o "jsonpath={.data['aicenter/aicenter-jobs:v23.10-10.15-rc02']}")
    podName="skillstatuspod"aicJobsImage=$(kubectl -n <uipath> get configmap aic-jobs-config -o "jsonpath={.data['aicenter/aicenter-jobs:v23.10-10.15-rc02']}")
    podName="skillstatuspod"
  2. 再次检索技能状态之前,清理任何可能正在运行的 skillstatuspod。以下命令将从上一次迭代中删除 Pod,因此请谨慎使用。
    kubectl -n <uipath> delete pod "$podName" --force.kubectl -n <uipath> delete pod "$podName" --force. 
  3. 创建 skillstatuspod 以获取技能状态。Pod 可能需要一些时间来拉取映像并运行,通常不到 30 秒。
    skill_arr="[]"
    kubectl -n <uipath> run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-status' -d \"$skill_arr\" | jq -r '([\"SKILL_ID\",\"SKILL_NAME\", \"STATUS\"] | (., map(length*\"-\"))), (.data[] | [.skillId, .skillName, .syncStatus]) | @tsv' | column -ts $'\t'; exit"skill_arr="[]"
    kubectl -n <uipath> run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-status' -d \"$skill_arr\" | jq -r '([\"SKILL_ID\",\"SKILL_NAME\", \"STATUS\"] | (., map(length*\"-\"))), (.data[] | [.skillId, .skillName, .syncStatus]) | @tsv' | column -ts $'\t'; exit"
    备注:
    • $skill_arr替换为[]以运行所有技能,或将 ['abcd', 'efgh'] 替换为以仅运行提到的两项技能。
    • 后续命令需要skills id输出。
  4. 检查技能状态的输出。
    kubectl -n <uipath> logs -f "$podName" -c "$podName"kubectl -n <uipath> logs -f "$podName" -c "$podName"

运行技能迁移

要运行技能迁移,请执行以下步骤:

  1. 设置用于执行后续命令的变量。
    aicJobsImage=$(kubectl -n uipath get configmap aic-jobs-config -o "jsonpath={.data['AIC_JOBS_IMAGE']}")
    podName="skillsyncpod"aicJobsImage=$(kubectl -n uipath get configmap aic-jobs-config -o "jsonpath={.data['AIC_JOBS_IMAGE']}")
    podName="skillsyncpod"
  2. 再次检索技能状态之前,清理任何可能正在运行的 skillsyncpod。以下命令将从上一次迭代中删除 Pod,因此请谨慎使用。
    kubectl -n uipath delete pod "$podName" --forcekubectl -n uipath delete pod "$podName" --force
  3. 启动技能同步。Pod 可能需要一些时间来拉取映像并运行,通常不到 30 秒。
    kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-all' -d \"[\"skill_id1\", \"skill_id2\", .... ]\"; exit"kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-all' -d \"[\"skill_id1\", \"skill_id2\", .... ]\"; exit"
    注意:skill ids替换为在“检查技能迁移状态”过程中复制的值。
    查看以下示例以声明skill_arr变量:
    skill_arr='[\"fb14154a-ce63-43ab-yyyy-xxxxxxxxxxxxxx\", \"ad58942d-e038-4d38-yyyy-xxxxxxxxxxxx\"]' # Replace them with ML skill ids in your environment
    kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c -x "curl -sSL -XPOST -H 'Content-Type: application/json' '/ai-deployer/v1/system/mlskills:restore-all' -d \"$skill_arr\"; exit"skill_arr='[\"fb14154a-ce63-43ab-yyyy-xxxxxxxxxxxxxx\", \"ad58942d-e038-4d38-yyyy-xxxxxxxxxxxx\"]' # Replace them with ML skill ids in your environment
    kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c -x "curl -sSL -XPOST -H 'Content-Type: application/json' '/ai-deployer/v1/system/mlskills:restore-all' -d \"$skill_arr\"; exit"
  4. 检查技能同步状态的输出。
    kubectl -n uipath logs -f "$podName" -c "$podName"kubectl -n uipath logs -f "$podName" -c "$podName"
  5. 该操作可能需要很长时间,具体取决于要同步的技能数量,因此您可以依靠技能迁移状态定期检查技能,直到没有处于 IN_PROGRESS 状态的技能为止。
备注:
在检查技能迁移状态或运行技能迁移时,您可以同时使用所有技能。或者,您可以仅对选定的技能执行这些操作,方法是在步骤 3 中将 -d "[skill_id1, skill_id2, .... ]" 作为额外参数传递给 curl

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
© 2005-2025 UiPath。保留所有权利。