- 概述
- 要求
- 部署模板
- 手动:准备安装
- 手动:准备安装
- 步骤 2:为离线安装配置符合 OCI 的注册表
- 步骤 3:配置外部对象存储
- 步骤 4:配置 High Availability Add-on
- 步骤 5:配置 SQL 数据库
- 步骤 6:配置负载均衡器
- 步骤 7:配置 DNS
- 步骤 8:配置磁盘
- 步骤 9:配置内核和操作系统级别设置
- 步骤 10:配置节点端口
- 步骤 11:应用其他设置
- 步骤 12:验证并安装所需的 RPM 包
- 步骤 13:生成 cluster_config.json
- 证书配置
- 数据库配置
- 外部对象存储配置
- 预签名 URL 配置
- Kerberos 身份验证配置
- 符合 OCI 的外部注册表配置
- Disaster Recovery:主动/被动和主动/主动配置
- High Availability Add-on 配置
- 特定于 Orchestrator 的配置
- Insights 特定配置
- Process Mining 特定配置
- Document Understanding 特定配置
- Automation Suite Robot 特定配置
- 监控配置
- 可选:配置代理服务器
- 可选:在多节点 HA 就绪生产集群中启用区域故障恢复
- 可选:传递自定义 resolv.conf
- 可选:提高容错能力
- install-uipath.sh 参数
- 添加具有 GPU 支持的专用代理节点
- 为 Task Mining 添加专用代理节点
- 连接 Task Mining 应用程序
- 为 Automation Suite Robot 添加专用代理节点
- 步骤 15:为离线安装配置临时 Docker 注册表
- 步骤 16:验证安装的先决条件
- 手动:执行安装
- 安装后
- 集群管理
- 监控和警示
- 迁移和升级
- 特定于产品的配置
- 最佳实践和维护
- 故障排除
- 如何在安装过程中对服务进行故障排除
- 如何卸载集群
- 如何清理离线工件以改善磁盘空间
- 如何清除 Redis 数据
- 如何启用 Istio 日志记录
- 将 Ceph 退出只读模式
- 如何清理存储在 sf-logs 存储桶中的旧日志
- 如何禁用 AI Center 的流日志
- 如何对失败的 Automation Suite 安装进行调试
- 如何在升级后从旧安装程序中删除映像
- 如何禁用 TX 校验和卸载
- 如何从 Automation Suite 2022.10.10 和 2022.4.11 升级到 2023.10.2
- 如何手动将 ArgoCD 日志级别设置为 Info
- 如何扩展 AI Center 存储
- 如何为外部注册表生成已编码的 pull_secret_value
- 如何解决 TLS 1.2 中的弱密码问题
- 如何使用证书
- 如何将应用程序日志转发到 Splunk
- 如何从注册表 Pod 中清理未使用的 Docker 映像
- 如何使用集群内对象存储 (Ceph) 收集 DU 使用情况数据
- 如何在离线环境中安装 RKE2 SELinux
- 如何清理 NFS 服务器上的旧差异备份
- 升级 Automation Suite 后重新安装或升级 Insights 时丢失数据
- 单节点升级在结构阶段失败
- 由于 Ceph 运行状况不佳,升级失败
- 卷无法装载,且仍处于附加/分离循环状态
- 由于 Orchestrator 数据库中的传统对象,升级失败
- 并行升级后,发现 Ceph 集群处于降级状态
- Insights 组件运行状况不佳导致迁移失败
- Apps 服务升级失败
- 就地升级超时
- Docker 注册表迁移卡在 PVC 删除阶段
- 升级到 2023.10 或更高版本后 AI Center 配置失败
- 在离线环境中升级失败
- 升级期间 SQL 验证失败
- 快照-控制器-crds Pod 在升级后处于 CrashLoopBackOff 状态
- Longhorn REST API 端点升级/重新安装错误
- 由于 Insights PVC 大小被覆盖,升级失败
- 预服务脚本执行期间服务升级失败
- 使用 Process Mining 运行高可用性
- 使用 Kerberos 登录时 Process Mining 挖掘失败
- 在 Disaster Recovery 后,DAPR 无法正常用于 Process Mining
- 在集群模式下使用 Redis 配置 Dapr
- 无法使用 pyodbc 格式连接字符串连接到 AutomationSuite_ProcessMining_Warehouse 数据库
- Airflow 安装失败,并显示 sqlalchemy.exc.ArgumentError:无法从字符串“”中解析 rfc1738 URL
- 如何添加 IP 表格规则以使用 SQL Server 端口 1433
- 运行 CData Sync 的服务器不信任 Automation Suite 证书
- 运行诊断工具
- 使用 Automation Suite 支持捆绑包
- 探索日志
证书概述
Automation Suite 安装所需的证书,包括自签名的默认值和证书轮换过程。
本页介绍 Automation Suite 安装所需的所有证书,以及证书轮换流程的原则。
有关替换自签名证书时必须提供的证书的详细信息,请参阅证书要求。
了解信任证书的工作方式
Automation Suite 内产品之间的服务间通信通过集群的 FQDN 完成。 产品无法使用内部 URL 相互通信。 例如,Orchestrator 可以通过https://automationsuite.mycompany.com/identity连接到身份服务器以进行用户身份验证。
虽然两个不同的 Automation Suite 产品必须使用集群的 FQDN,但它们也可以包含多个微服务。 这些微服务可以使用内部 URL 相互通信。
了解通信的工作方式
下图和流程说明了客户端如何连接到服务,以及如何通过身份服务完成身份验证。
-
客户端使用以下 URL 与使用 URL 的服务(例如 Orchestrator、Apps、Insights 等)建立连接:
https://automationsuite.mycompany.com/myorg/mytenant/service_。 -
Istio 拦截调用,并根据
service_的路径,将调用转发到特定服务。 -
该服务调用身份服务,以通过
https://automationsuite.mycompany.com/myorg/mytenant/identity_对来自客户端的传入请求进行身份验证。 -
Istio 拦截调用,并根据路径
identity_将请求转发到身份服务。 -
身份服务将响应及其结果返回给 Istio。
-
Istio 将响应返回给服务。 由于调用是使用 HTTPS 协议进行的,因此 Istio 返回带有 TLS 证书的响应,以确保连接安全。 如果服务信任 Istio 返回的服务器证书,则会批准响应。 否则,服务将拒绝响应。
-
该服务准备响应并将其发送回 Istio。
-
Istio 将请求转发回客户端。 如果客户端计算机信任证书,则整个请求都会成功。 否则,请求将失败。
了解机器人与 Orchestrator 的通信方式
本节介绍机器人尝试连接到 Automation Suite 中的 Orchestrator 的场景。 下图和流程说明了机器人如何连接到 Orchestrator,以及如何通过 Identity Server 完成身份验证。
-
机器人使用以下 URL 与 Orchestrator 建立连接:
https://automationsuite.mycompany.com/myorg/mytenant/orchestrator_ -
Istio 拦截调用,并根据
orchestrator_路径将其转发到 Orchestrator 服务。 -
Orchestrator 服务调用身份服务器,以通过
https://automationsuite.mycompany.com/myorg/mytenant/identity_对来自机器人的传入请求进行身份验证。 -
Istio 拦截调用,并根据
identity_路径将请求转发到 Identity Server。 -
Identity Server 将响应和结果返回给 Istio。
-
Istio 将响应返回给 Orchestrator。 由于调用是使用 HTTPS 协议进行的,因此 Istio 返回带有 TLS 证书的响应,因此该连接是安全的。 如果 Orchestrator 信任 Istio 返回的服务器证书,则它也会批准响应。 否则,Orchestrator 将拒绝响应。
-
Orchestrator 准备响应并将其发送回 Istio。
-
Istio 将请求转发回机器人。 如果机器人计算机信任证书,则整个请求都会成功。 否则,请求将失败。
了解与证书相关的容器架构
容器级别
下图显示了一个拥有自己的操作系统和证书信任存储区的容器。
在此示例中,容器具有自己的操作系统 (RHEL 操作系统),服务可以表示在 RHEL 操作系统之上运行的 Orchestrator。
每个操作系统都有自己的证书存储区。 对于 RHEL 操作系统,“证书信任存储区”位于/etc/pki/ca-trust/ca/ 。
此路径是 RHEL 操作系统存储所有证书的位置。每个容器都有自己的证书信任存储区。
作为 Automation Suite 配置的一部分,我们会注入包含根证书、所有中间证书以及叶证书的整个链证书,并将其存储在此路径中。由于服务信任根证书和中间证书,因此它们会自动信任由根证书和中间证书创建的任何其他证书。
Pod 级别
Automation Suite 中有数百个容器正在运行。 为所有服务的每个容器手动添加证书将是一项艰巨的任务。 但是,Automation Suite 包含一个共享卷和一个初始化容器证书信任程序,以帮助完成此任务。 Init 是一个专用容器,在 Pod 中在应用程序容器之前运行,其生命周期在完成作业后立即结束。
在以下示例中,Orchestrator 服务在一个 Pod 中运行。提醒一下,一个 Pod 可以包含多个容器。
-
Pod 包含一个名为Cert-trustor 的Init 容器,其中包含根证书、中间证书和分支证书。
-
共享卷使用与 RHEL 操作系统证书信任存储相同的路径附加到证书信任程序容器和 Orchestrator 服务容器:
/etc/pki/ca-trust/ca/source/anchors。 -
在 Orchestrator 运行之前,证书信任程序会将证书添加到该位置的共享卷中,然后终止。
-
证书通过共享卷对 Orchestrator 服务可用。
Automation Suite 中所有证书的清单
安装期间生成的证书
作为 Automation Suite 安装的一部分,系统将生成以下证书:
- 安装时生成的自签名证书,有效期为 3 个月。安装后,您必须将自签名证书替换为域证书。请参阅管理证书
- 用于对身份验证中使用的 JWT 令牌进行签名的Identity Server 证书。如果未提供用于对 JWT 令牌进行签名的证书,Automation Suite 将使用当前配置的 TLS 证书(自签名或客户提供的),该证书将在 90 天后过期。如果您想使用自己的证书对身份令牌进行签名,请参阅管理证书。
- 系统会生成RKE2 证书,默认情况下,该证书将在 12 个月后过期。 如果证书已过期或在 90 天内过期,则在重新启动 RKE2 时轮换证书。
其他证书
- 如果启用,SAML2 身份验证协议可以使用服务证书。
- 如果使用用户名和密码配置 Active Directory,则 LDAPS (LDAP Over SSL) 为可选项。如果选择 LDAPS,则必须提供证书。系统会将此证书添加到 Automation Suite 的受信任根证书颁发机构中。有关详细信息,请参阅Microsoft 文档。
了解证书更新/轮换的工作原理
在线安装
证书存储在两个位置:
- {
istio-system中的istio-ingressgateway-certs} uipath命名空间
要更新istio-system和uipath命名空间中的证书,您必须运行sudo ./configureUiPathAS.sh tls-cert update命令。
Pod 只能访问其命名空间中的密码。 例如,在 uipath 命名空间中运行的 Pod 无法访问存储在 istio-system 命名空间中的密码。 因此,证书将复制到两个命名空间中。
对于uipath命名空间,我们将证书装载到需要证书的 Pod 中,并重新启动 Pod,以便它们可以使用新证书。
对于单节点评估安装,此更新将缩减 Pod。 系统将关闭并重新启动所有 Pod。 此操作将导致停机。
对于多节点 HA 就绪生产安装,更新将使用滚动部署方法进行。如果微服务有两个用于高可用性目的的 Pod,则更新将删除其中一个 Pod,并出现新版本的 Pod。新进程成功启动后,系统将删除旧进程。在旧 Pod 尚未终止之前,将有短暂的停机时间。
离线安装
除了特定于在线安装的证书外,离线部署还有两个使用rootCA.crt和tls.crt的附加位置。 证书在 ArgoCD 和 Docker Registry 中使用,然后存储在 Docker 和 ArgoCD 命名空间中。
您可以使用以下命令验证密码:
# For docker registry
kubectl -n docker-registry get secrets docker-registry-tls -o yaml
# For Argocd
argocd cert list --cert-type https
# For docker registry
kubectl -n docker-registry get secrets docker-registry-tls -o yaml
# For Argocd
argocd cert list --cert-type https