- 概述
- 要求
- 预安装
- 安装
- 安装后
- 迁移和升级
- 监控和警示
- 集群管理
- 特定于产品的配置
- 故障排除
- 由于无法连接到 Azure Government,备份设置不起作用
- 启用自定义节点污点时,UiPath 命名空间中的 Pod 卡住
- 无法使用代理设置启动 Automation Hub 和 Apps
- 由于“验证失败”错误,Velero 备份失败
- 外部密码故障排除
- 时间即服务故障排除
- 无法在启用 TLS 证书验证的情况下启动 AI Center 和 Document Understanding Pod
- TLS 证书验证错误
- Fluentd 不会在 IPv6 环境中导出日志
- Studio 桌面版无法加载 Integration Service 连接器和活动
- 手动 ArgoCD 网络策略缓解措施 (MHSA-47m3-95c7-g2g8)
- 为 uipathctl 创建的工作负载配置资源请求和限制
EKS/AKS 上的 Automation Suite 的对象存储、块存储和文件存储配置。
除了 Microsoft SQL Server 外,Automation Suite 集群还需要一个存储组件来存储文件。 Automation Suite 是否需要对象存储和块/文件存储,具体取决于您选择的服务类型。
每个 Automation Suite 组件的存储空间估计值
UiPath™ Platform 服务
以下服务需要存储组件。 仅当您选择在 Automation Suite 安装过程中或更高版本中启用它们时,才需要使用这些功能。
| 服务 | 存储类型 | 用途 | 估计 |
|---|---|---|---|
| Orchestrator | 对象存储 |
| 通常,一个包为 5 Mb,而存储桶(如果有)小于 1 Mb。 一个成熟的 Enterprise 部署大约 10 GB 的包和 12 GB 的队列。 |
| Action Center | 对象存储 |
| 通常情况下,一个文档需要 0.15 Mb,要填写的表单会额外占用 0.15 Kb。 在成熟的企业中,总计可达到 4 GB。 |
| Test Manager | 对象存储 |
| 通常,所有文件和附件总计约为 5 GB。 |
| Insights | Blockstore |
| 启用需要 2 GB,存储占用空间会随着数量的增加而增加。 完善的 Enterprise规模部署还需要几个 GB 的所有仪表板。 大约 10GB 的存储空间就足够了。 |
| Integration Service | 对象存储 |
| 连接器的大小各不相同,但安装所有可用的连接器占用的内存消耗不会超过 100 MB。 触发器事件的数量因使用情况而异,但 5 GB 应已足够。 |
| Studio Web | 文件存储 |
|
|
| Apps | 文件存储 |
| 大约 5 GB,用于现有应用程序数据;每个复杂的应用程序大约需要 15 MB。用户上传的附件需要额外空间。 |
| AI Center | 对象存储/文件存储 |
| 典型的已建立安装将消耗 8 GB 的空间(安装五个包)和额外的 1 GB 的数据集。 管道可能会额外消耗 50GB 的块存储,但前提是处于主动运行状态。 |
| Document Understanding | 对象存储 |
| 在成熟部署中,12GB 用于 ML 模型,17GB 用于 OCR,50GB 用于存储的所有文档。 |
| Automation Suite 机器人 | 文件存储 |
| 通常情况下,成熟的企业会部署大约 10 GB 的包。 |
| Process Mining | 对象存储 |
| 最小占用空间仅用于存储 SQL 文件。 一开始,大约 1 GB 的存储空间就足够了。 |
| 上下文基础 | 对象存储,文件存储 |
|
|
| LLM 可观察性 | 对象存储 |
|
|
| Solutions (解决方案) | 对象存储 |
|
|
| Maestro | 对象存储 |
|
|
| Autopilot for Developers | 对象存储 |
|
|
共享套件服务
以下共享套件服务需要存储组件。 仅当您选择将它们作为 Automation Suite 安装的一部分进行安装时,才需要这些组件。
| 服务 | 存储类型 | 用途 | 估计 |
|---|---|---|---|
| 监控 | 块存储 | Kubernetes 和基础架构相关指标数据 | 大约 100 GB,用于存储过去十天的监控数据 |
| 日志记录 | 块存储 | 应用程序运行日志 | 大约 20 GB 用于保留前几天的日志 |
对象存储
Automation Suite 支持以下对象存储:
| Kubernetes | 对象存储 | 支持的身份验证 |
|---|---|---|
| EKS | Amazon S3 |
|
| AKS | Azure 存储 (Blob) |
|
* Insights 当前不支持工作负载身份进行身份验证。
配置 CORS 策略
此外,如果您在使用 Automation Suite 集群进行 S3 连接期间遇到任何与 CORS 相关的错误,则可能必须在存储帐户/存储桶级别启用以下 CORS 策略。
确保在以下 CORS 策略中将 {{fqdn}} 替换为 Automation Suite 集群的 FQDN。
以下示例显示了 JSON 格式的 CORS 策略:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"POST",
"GET",
"HEAD",
"DELETE",
"PUT"
],
"AllowedOrigins": [
"https://{{fqdn}}"
],
"ExposeHeaders": [
"etag",
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
}
]
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"POST",
"GET",
"HEAD",
"DELETE",
"PUT"
],
"AllowedOrigins": [
"https://{{fqdn}}"
],
"ExposeHeaders": [
"etag",
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
}
]
以下示例显示了 XML 格式的 CORS 策略:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>{{fqdn}}</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
<ExposeHeader>x-amz-request-id</ExposeHeader>
<ExposeHeader>x-amz-id-2</ExposeHeader>
<ExposeHeader>etag</ExposeHeader>
</CORSRule>
</CORSConfiguration>
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>{{fqdn}}</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
<ExposeHeader>x-amz-request-id</ExposeHeader>
<ExposeHeader>x-amz-id-2</ExposeHeader>
<ExposeHeader>etag</ExposeHeader>
</CORSRule>
</CORSConfiguration>
配置
要配置对象存储,请参阅外部对象存储配置。
由于容器是在 Azure 存储帐户的范围内创建的,因此建议为每项服务设置一个单独的容器。
同样,在 AWS 中,强烈建议为 Automation Suite 上安装的每项服务设置一个专用存储桶。 但是,如果存储桶是全局创建的,则在为每项服务提供专用存储桶时可能会遇到限制。 在这种情况下,您可以配置单个存储桶并将其用于所有目的。
如果您提供 make 权限,则 Automation Suite 安装程序支持创建容器/存储桶。 或者,您可以在安装之前配置所需的容器/存储桶并将其信息配置给安装程序。
Integration Service 所需的存储桶
在 AKS 安装中,您必须在 Azure 存储中创建多个 Blob 存储桶。 在使用单个存储桶的 EKS 安装中不需要此步骤。
您必须在安装前手动创建以下存储桶:
gallupx-poller-datagallupx-job-engine-stategallupx-notification-objectsgallupx-webhookgallupx-execution-trace
存储要求
- 对象存储:500 GB
对象存储的大小取决于已部署和正在运行的自动化的大小。因此,在安装之初提供准确的对象存储估计值可能具有挑战性。您可以从大小为 350 GB 到 500 GB 的对象存储开始。要了解对象存储的用法,请参阅每个 Automation Suite 组件的存储估计。
- 随着自动化的扩展,您可能需要考虑对象存储大小的增加。
块存储
块存储必须具有配置有 Kubernetes 存储类的 SCSI 驱动程序。
下表提供了有关块存储、存储类和配置程序的详细信息:
| 云/Kubernetes | 存储 | 存储类 | 配置程序 |
|---|---|---|---|
| AWS | EBS 卷 | ebs-sc | ebs.csi.aws.com |
| Azure | Azure 管理磁盘 | managed-premium高级 LRS 磁盘 | disk.csi.azure.com |
配置
您必须将为集群创建的存储类的名称传递给 input.json 文件中的 storage_class 参数。
- 有时,EKS 或 AKS 集群会安装 CSI 驱动程序并提供存储类。 如果未配置这些存储类,则必须在安装 Automation Suite 之前配置它们。
- 您必须将块存储的存储类设为默认存储类,如以下示例所示。
示例
以下示例显示了如何配置存储类以及如何在安装过程中将其提供给input.json文件:
| 配置 | input.json | StorageClass |
|---|---|---|
| Azure |
|
|
| AWS |
|
|
存储要求
- 块存储:50 GB
块存储的大小取决于已部署和正在运行的自动化的大小。因此,在安装之初就提供准确的估计值可能具有挑战性。您可以从 50 GB 的块存储开始。要了解块存储的使用情况,请参阅每个 Automation Suite 组件的存储预计值。
随着自动化的扩展,您可能需要考虑块存储大小的增加。
文件存储
文件存储必须具有使用 Kubernetes 存储类配置的 SCSI 驱动程序。
下表提供了文件存储、存储类和配置程序的详细信息:
| 云/Kubernetes | 存储 | 存储类 | 配置程序 |
|---|---|---|---|
| AWS | EFS | efs-sc | efs.csi.aws.com |
| Azure | Azure 文件 | azurefile-csi-premium | file.csi.azure.com |
- 对 AKS 上的 Studio Web 使用
azurefile-csi-premium存储类。 - 建议为 Studio Web 存储配置 ZRS(或复制),以确保高可用性。
- 工作器节点磁盘应至少具有 2300 IOPS,并且应使用性能配置文件和SKU 配置文件配置存储集群,至少具有 5000 IOPS。
配置
您必须将为集群创建的存储类的名称传递给 input.json 文件中的 storage_class_single_replica 参数。
有时,EKS 或 AKS 集群会安装 CSI 驱动程序并提供存储类。 如果未配置此存储类,则必须在安装 Automation Suite 之前进行配置。
示例
以下示例显示了如何配置存储类以及如何在安装过程中将其提供给 input.json :
| 配置 | input.json | StorageClass |
|---|---|---|
| Azure |
|
|
| Azure |
|
|
| AWS |
|
将 |
| AWS |
|
将 |
文件共享的存储类所需的目录和文件权限必须设置为 700。此外,必须在 Azure 中将UID和GID设置为 1000,而在 AWS 中将gidRangeStart和gidRangeEnd分别设置为 1000 和 2000。
存储要求
- 文件存储空间:510 GB
文件存储的大小取决于已部署和正在运行的自动化的大小。因此,在安装过程中最初提供实际估计值可能具有挑战性。但是,大约 510 GB 的存储大小足以运行十个并发训练管道和 Automation Suite Robot。要了解文件存储的使用情况,请参阅每个 Automation Suite 组件的存储预计值。
随着自动化的扩展,您可能需要考虑文件存储大小的增加。
队列
在安装之前,您必须在云提供程序中手动创建以下队列。 需要使用这些队列来支持事件和 Webhook。
gallupx-debug-engine-tasksgallupx-engine-tasksgallupx-cron-tasksgallupx-tick-tasksgallupx-event-tasksgallupx-notification-tasksgallupx-webhook-engine-tasksgallupx-fps-engine-tasks
对于 EKS 上的 Automation Suite,您必须手动向队列添加特定前缀,如以下示例所示:
<queuePrefix>-gallupx-debug-engine-tasks<queuePrefix>-gallupx-engine-tasks<queuePrefix>-gallupx-cron-tasks<queuePrefix>-gallupx-tick-tasks<queuePrefix>-gallupx-event-tasks<queuePrefix>-gallupx-notification-tasks<queuePrefix>-gallupx-webhook-engine-tasks<queuePrefix>-gallupx-fps-engine-tasks
queuePrefix值必须与EKS input.json中使用的必需queue_prefix参数的值匹配。
如果您使用 Amazon简单队列服务 (SQS),则需要创建八个额外的死信队列 (DLQ)。您需要将每个 DLQ 与其相应的主队列相关联。
您需要使用以下设置配置除gallupx-engine-tasks以外的每个队列:
- 消息保留期:14 天
- 消息大小上限:256 KB
- 死信队列:已启用
- 默认可见性超时: 30 秒
您需要使用相同的设置配置gallupx-engine-tasks队列,但以下情况除外:
- 默认可见性超时: 15 分钟
您总共必须有 18 个队列,即九个主队列和九个关联的死信队列,如以下示例所示:
prefix-gallupx-core
prefix-gallupx-core-deadletter
prefix-gallupx-cron-tasks
prefix-gallupx-cron-tasks-deadletter
prefix-gallupx-debug-engine-tasks
prefix-gallupx-debug-engine-tasks-deadletter
prefix-gallupx-engine-tasks
prefix-gallupx-engine-tasks-deadletter
prefix-gallupx-event-tasks
prefix-gallupx-event-tasks-deadletter
prefix-gallupx-fps-engine-tasks
prefix-gallupx-fps-engine-tasks-deadletter
prefix-gallupx-notification-tasks
prefix-gallupx-notification-tasks-deadletter
prefix-gallupx-tick-tasks
prefix-gallupx-tick-tasks-deadletter
prefix-gallupx-webhook-engine-tasks
prefix-gallupx-webhook-engine-tasks-deadletter
prefix-gallupx-core
prefix-gallupx-core-deadletter
prefix-gallupx-cron-tasks
prefix-gallupx-cron-tasks-deadletter
prefix-gallupx-debug-engine-tasks
prefix-gallupx-debug-engine-tasks-deadletter
prefix-gallupx-engine-tasks
prefix-gallupx-engine-tasks-deadletter
prefix-gallupx-event-tasks
prefix-gallupx-event-tasks-deadletter
prefix-gallupx-fps-engine-tasks
prefix-gallupx-fps-engine-tasks-deadletter
prefix-gallupx-notification-tasks
prefix-gallupx-notification-tasks-deadletter
prefix-gallupx-tick-tasks
prefix-gallupx-tick-tasks-deadletter
prefix-gallupx-webhook-engine-tasks
prefix-gallupx-webhook-engine-tasks-deadletter
备份和还原
要备份 Automation Suite 集群,您需要额外的对象存储来备份集群配置和用户数据。
下表描述了支持的备份存储:
| Kubernetes | 对象存储 |
|---|---|
| EKS | AWS S3 |
| AKS | Azure 存储帐户 |
建议使用单独的对象存储来存储备份。
存储身份验证
工作负载从 AKS 对存储帐户进行基于身份的访问
有关工作负载身份的一般信息,请参阅“工作负载身份配置” 。
要将存储帐户设置为使用工作负载身份,请运行以下命令:
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Account Contributor" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Blob Data Owner" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Queue Data Contributor" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Account Contributor" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Blob Data Owner" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
az role assignment create --assignee $userAssignedManagedIdentityObjectId --role "Storage Queue Data Contributor" --scope "/subscriptions/$($infraJson.subscription_id)/resourceGroups/$(TARGET_RG)/providers/Microsoft.Storage/storageAccounts/$(STORAGE_ACCOUNT_NAME)"
以下示例显示了 Azure 存储帐户的有效input.json配置:
"external_object_storage": {
"enabled": true,
"storage_type": "azure",
"account_name": "storaccid5730469",
"azure_fqdn_suffix": "core.windows.net",
"use_managed_identity": false,
"use_workload_identity": true
},
"external_object_storage": {
"enabled": true,
"storage_type": "azure",
"account_name": "storaccid5730469",
"azure_fqdn_suffix": "core.windows.net",
"use_managed_identity": false,
"use_workload_identity": true
},