- 概述
- 要求
- 安装
- 安装后
- 集群管理
- 监控和警示
- 迁移和升级
- 特定于产品的配置
- 最佳实践和维护
- 故障排除
- 无法获取沙盒映像
- Pod 未显示在 ArgoCD 用户界面中
- Redis 探测器失败
- RKE2 服务器无法启动
- 在 UiPath 命名空间中找不到密码
- 初始安装后,ArgoCD 应用程序进入“进行中”状态
- MongoDB Pod 处于 CrashLoopBackOff 状态或在删除后处于“等待 PVC 配置”状态
- 意外错误:不一致;手动运行 fsck
- 集群还原后 MongoDB 或业务应用程序降级
- 缺少 Self-heal-operator 和 Sf-k8-utils 存储库
- 集群还原或回滚后服务不正常
- RabbitMQ Pod 卡在 CrashLoopBackOff 中
- Prometheus 处于 CrashLoopBackoff 状态,并出现内存不足 (OOM) 错误
- 监控仪表板中缺少 Ceph-rook 指标
- Pod 无法在代理环境中与 FQDN 通信
- 使用 Automation Suite 诊断工具
- 使用 Automation Suite 支持捆绑包
- 探索日志
正在准备 Orchestrator
要将 Orchestrator 从独立安装迁移到 Automation Suite,您必须从独立安装中收集设置和各种文件,并将其应用于 Automation Suite 安装。
根据在 Orchestrator 中使用的配置,您可能需要为每个租户准备 web.config、 appSettings、存储、NLog、凭据存储、加密密钥和加密密钥。
迁移概述
要将 Orchestrator 从独立安装迁移到 Automation Suite,您必须从独立安装中收集设置和各种文件,并将其应用于 Automation Suite 安装。
虽然在安装时只能配置部分设置,但所有设置都应可用于安装后配置。
- 如要在安装时配置设置,请将其添加到
cluster_config.json文件中; - 在安装完成后更新设置取决于设置的作用域,以及某个功能是否可用于通过 app-of-apps 参数进行配置。
You can store custom files that are needed inside the Orchestrator pods, such as assemblies or other storage files, in the built-in Ceph object store. The storage files are stored in a bucket for each tenant. The plugins are stored in the uipath bucket under orchestrator/plugins/nlog or orchestrator/plugins/securestore.
您可以按如下方式添加自定义配置:
- 通过编辑 ArgoCD 中的应用程序参数(参数覆盖);
- 通过编辑 Kubernetes 配置映射
orchestrator-customconfig中命名空间uipath中的文件。
正在准备 web.config
大多数 web.config 设置没有等效项,或者在 Automation Suite 中使用其他机制实现。
您确实需要配置以下选项:
security.requestFiltering.requestLimits.maxAllowedContentLength
security.requestFiltering.requestLimits.maxAllowedContentLength
记下此设置的值以备后用。决定是否需要在 Automation Suite 中对其进行配置。其默认值为 300MiB。
准备应用程序设置
您可能需要迁移在 UiPath.Orchestrator.dll.config 配置文件的 appSettings 或 secureAppSettings 部分中进行的自定义更改。您可以将自定义 appSettings 和 secureAppSettings 添加到 orchestrator-customconfig 配置映射。
在 UiPath.Orchestrator.dll.config 配置文件的 appSettings 部分中,标识所有已修改或添加的设置。将这些设置保存在 .json 文件中,以便在后续步骤中使用。
您可以使用 Orchestrator CLI 保护配置选项解密任何受保护的应用程序配置部分。您只需使用已更改或添加且在 Automation Suite 中仍然相关的设置。
You can create the appsettings.json file as shown in the following example:
{
"ExampleSetting.Enabled": true,
"ExampleSetting.Type": "BasicExample",
"ExampleSetting.Count": 3
}
{
"ExampleSetting.Enabled": true,
"ExampleSetting.Type": "BasicExample",
"ExampleSetting.Count": 3
}
准备存储
Decide what you need for the storage migration and if your current storage configuration stays the same or if you would instead let Automation Suite manage the storage for you. Automation Suite offers the option to store the blobs in Ceph, which can be used in all Orchestrator pods. In the case of a migration, you must copy the existing files to the current blob storage.
如果您在本地文件夹中使用文件系统类型的存储,请将数据从存储文件夹复制到 Automation Suite 节点上的文件夹。然后,通过使用 S3 实用程序(例如 s3cmd),您可以将数据复制到 Orchestrator。如果您使用的是 Ceph,则无需其他配置,因为这是默认选项。
如果要将文件系统与 Windows 网络共享一起使用,则需要在 ArgoCD Orchestrator 应用程序中配置存储。通过 Storage.Location 键,从当前的 Orchestrator 配置中检索与 Windows 网络共享的连接数据。由于 Automation Suite 在 Linux 计算机上运行,因此您不能依赖集成身份验证来访问网络共享,而是需要可以访问它的帐户的凭据。
目前,仅支持使用 SMB 协议的网络共享。不支持使用 NFS 的网络共享。
如果您使用 Azure、AWS 或 Minio 等远程存储选项,请确保将 Storage.Location 和 Storage.Type 设置添加到 appsettings.json 中。
准备 NLog
您可以对 NLog 进行以下自定义:
- 更改现有目标
- 添加新目标
- 添加 NLog 扩展程序
查看配置文件的 NLog 部分,并构建 NLog 自定义配置。要在 Elasticsearch 中启用机器人日志存储,您可以提供用户名、密码和 URI 作为 Automation Suite 参数,然后系统会自动配置目标。要为机器人日志启用自定义方案,您需要手动配置目标。
如果需要 NLog 扩展程序,请创建一个包含所有扩展程序及其依赖项的文件夹。
For example, the folder could be named nlogextensions. By default, Orchestrator loads the following extensions, so you do not need to include them in the folder or the NLog configuration:
NLog.Targets.ElasticSearch
UiPath.Orchestrator.Logs.Elasticsearch
Microsoft.ApplicationInsights.NLogTarget
NLog.Extensions.AzureEventHub
NLog.Targets.ElasticSearch
UiPath.Orchestrator.Logs.Elasticsearch
Microsoft.ApplicationInsights.NLogTarget
NLog.Extensions.AzureEventHub
创建包含以下标准部分的 nlog.custom.config 文件:扩展程序、目标和规则。
扩展程序部分是使用 assemblyFile 指定扩展程序集的一系列项目,以及程序集相对于 nlogextensions 文件夹的路径。
Orchestrator 定义了为常见用例配置或部分配置的 NLog 目标和规则。当需要自定义这些目标时,您只需在 NLog 配置中包括修改后的属性。您无法从预定义配置中删除现有属性,但可以更改它们。在 Orchestrator Pod 中,默认包含的目标定义在 /opt/app-root/app/nlog.config.json 位置。
Example: nlog.custom.config file that writes logs to Azure Blob:
{ "NLog": {
"extensions": [
{ "assemblyFile": "NLog.Extensions.AzureBlobStorage.dll" }
],
"targets": {
"azureBlob": {
"type": "AzureBlobStorage",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=test;AccountKey=key;EndpointSuffix=core.windows.net",
"container": "orchestratorlogs",
"blobName": "${date:format=yyyy-MM-dd hh.mm}",
"layout": {
"type": "JsonLayout",
"includeAllProperties": true,
"Attributes": [
{"name": "ts","layout": "${longdate}"},
{"name": "level","layout": "${level:upperCase=true}"},
{"name": "logger","layout": "${logger}"},
{"name": "message","layout": "${message}"},
{"name": "exception","layout": "${onexception:${ui-pretty-exception}}"}
]
}
}
},
"rules": { "70_Final": { "writeTo": "stdout,azureBlob" } }
}
}
{ "NLog": {
"extensions": [
{ "assemblyFile": "NLog.Extensions.AzureBlobStorage.dll" }
],
"targets": {
"azureBlob": {
"type": "AzureBlobStorage",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=test;AccountKey=key;EndpointSuffix=core.windows.net",
"container": "orchestratorlogs",
"blobName": "${date:format=yyyy-MM-dd hh.mm}",
"layout": {
"type": "JsonLayout",
"includeAllProperties": true,
"Attributes": [
{"name": "ts","layout": "${longdate}"},
{"name": "level","layout": "${level:upperCase=true}"},
{"name": "logger","layout": "${logger}"},
{"name": "message","layout": "${message}"},
{"name": "exception","layout": "${onexception:${ui-pretty-exception}}"}
]
}
}
},
"rules": { "70_Final": { "writeTo": "stdout,azureBlob" } }
}
}
扩展程序文件夹 nlogextensions 将复制到对象存储库中众所周知的插件位置。Orchestrator 配置程序工具可以自动执行此操作,同时还可以更新 NLog 配置。脚本会自动更改 nlog.custom.config,以便为扩展程序数组中的每个程序集文件添加 /var/orchestrator/plugins/nlog/ 前缀(如果尚未添加前缀)。
准备凭据存储
您可以将凭据存储的自定义插件迁移到 Automation Suite。为此,请更新配置映射中的配置,并将插件程序集复制到相应的对象存储桶。
- 插件必须在 Linux 上运行。
- 除
/tmp外,插件不得写入任何存储空间。
以下凭据存储插件会自动部署到 Automation Suite 中的 Orchestrator:
UiPath.Orchestrator.AzureKeyVault.SecureStore.dllUiPath.Orchestrator.SecureStore.CyberArkCCP.dll
Automation Suite 不支持 CyberArk AIM,因此您无法迁移它。我们建议迁移到 CyberArkCCP 凭据存储。
如果您使用任何其他凭据存储插件,请将其复制到文件夹中,例如 securestoreplugins。
在 appsettings.json 文件中添加凭据存储设置,如下所示:
- 要禁用默认插件,请在
appsettings.json中添加具有空字符串值的配置Plugins.SecureStores.Default; - 将所有自定义插件添加到
Plugins.SecureStores设置中,并在appsettings.json中用;分隔; - 添加任何自定义插件设置,如下所示:
Plugins.SecureStores.<<FriendlyName>>.<<SettingName>>。
将 securestoreplugins 插件文件夹复制到对象存储库中众所周知的插件位置。
Plugins.SecureStores 中的程序集从此文件夹加载。
Plugins.SecureStore.Default 中的程序集从 Orchestrator 应用程序文件夹中的插件文件夹加载。
准备加密密钥
默认情况下,Orchestrator 在安装时会生成一个加密密钥,用于数据库中的敏感信息。如果要在新的 Orchestrator 部署中重用数据库,则必须迁移此密钥。
要检索加密密钥,请执行以下步骤:
- 按需加密
UiPath.Orchestrator.dll.config文件的secureAppSettings部分。有关详情,请参阅加密 UiPath.Orchestrator.dll.config 部分。 - 从
UiPath.Orchestrator.dll.config中检索加密密钥。有关详细信息,请参阅加密密钥。
为每个租户准备加密密钥
加密密钥证书安装在 Windows 证书存储中。您必须向 Automation Suite 环境提供证书,以便 Orchestrator Pod 可以使用该证书。
Automation Suite 中不再需要 CertificatesStoreLocation 和 Azure.KeyVault.CertificateThumbprint 设置,但您可以根据需要使用 CertificatePassword。
采取以下步骤:
- 查看 appSettings 并获取
AzureKeyVault.*设置。 - 存储
Azure.KeyVault.VaultAddress、Azure.KeyVault.ClientId和Azure.KeyVault.DirectoryId以备后用。 - 检索证书,必要时检索证书密码。