- 概述
- 要求
- 部署模板
- 手动:准备安装
- 手动:准备安装
- 步骤 2:为离线安装配置符合 OCI 的注册表
- 步骤 3:配置外部对象存储
- 步骤 4:配置 High Availability Add-on
- 步骤 5:配置 SQL 数据库
- 步骤 7:配置 DNS
- 步骤 8:配置磁盘
- 步骤 9:配置内核和操作系统级别设置
- 步骤 10:配置节点端口
- 步骤 11:应用其他设置
- 步骤 12:验证并安装所需的 RPM 包
- 步骤 13:生成 cluster_config.json
- Cluster_config.json 示例
- 常规配置
- 配置文件配置
- 证书配置
- 数据库配置
- 外部对象存储配置
- 预签名 URL 配置
- ArgoCD 配置
- Kerberos 身份验证配置
- 符合 OCI 的外部注册表配置
- Disaster Recovery:主动/被动和主动/主动配置
- High Availability Add-on 配置
- 特定于 Orchestrator 的配置
- Insights 特定配置
- Process Mining 特定配置
- Document Understanding 特定配置
- Automation Suite Robot 特定配置
- 监控配置
- 可选:配置代理服务器
- 可选:在多节点 HA 就绪生产集群中启用区域故障恢复
- 可选:传递自定义 resolv.conf
- 可选:提高容错能力
- 添加具有 GPU 支持的专用代理节点
- 为 Automation Suite Robot 添加专用代理节点
- 步骤 15:为离线安装配置临时 Docker 注册表
- 步骤 16:验证安装的先决条件
- 正在运行 uipathctl
- 手动:执行安装
- 安装后
- 集群管理
- 监控和警示
- 迁移和升级
- 特定于产品的配置
- 最佳实践和维护
- 故障排除
- 如何在安装过程中对服务进行故障排除
- 如何减少 NFS 备份目录的权限
- 如何卸载集群
- 如何清理离线工件以改善磁盘空间
- 如何清除 Redis 数据
- 如何启用 Istio 日志记录
- 如何手动清理日志
- 如何清理存储在 sf-logs 存储桶中的旧日志
- 如何禁用 AI Center 的流日志
- 如何对失败的 Automation Suite 安装进行调试
- 如何在升级后从旧安装程序中删除映像
- 如何禁用 TX 校验和卸载
- 如何手动将 ArgoCD 日志级别设置为 Info
- 如何扩展 AI Center 存储
- 如何为外部注册表生成已编码的 pull_secret_value
- 如何解决 TLS 1.2 中的弱密码问题
- 如何查看 TLS 版本
- 如何使用证书
- 如何计划 Ceph 备份和还原数据
- 如何使用集群内对象存储 (Ceph) 收集 DU 使用情况数据
- 如何在离线环境中安装 RKE2 SELinux
- 如何清理 NFS 服务器上的旧差异备份
- 如何在已启用 FIPS 的集群中部署 Insights
- 如何迁移到 cgroup v2
- 如何在虚拟机重新启动后恢复 Kerberos 身份验证
- 如何将本地 Docker 映像推送到集群内注册表
- 如何从备份中排除存储桶
- 无法获取沙盒映像
- Pod 未显示在 ArgoCD 用户界面中
- Redis 探测器失败
- RKE2 服务器无法启动
- 在 UiPath 命名空间中找不到密码
- ArgoCD 在首次安装后进入“进行中”状态
- 处于 CrashLoopBackOff 状态的 ArgoCD 存储库服务器 Pod
- 手动 ArgoCD 网络策略缓解措施 (MHSA-47m3-95c7-g2g8)
- 监控仪表板中缺少 Ceph-rook 指标
- 诊断性运行状况检查期间报告的错误不匹配
- 为 uipathctl 创建的工作负载配置资源请求和限制
- 无正常的上游问题
- 杀毒软件阻止了 Redis 启动
- 无法在启用 TLS 证书验证的情况下启动 AI Center 和 Document Understanding Pod
- Fluentd 不会在 IPv6 环境中导出日志
- Studio 桌面版无法加载 Integration Service 连接器和活动
- 运行诊断工具
- 使用 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 容器。 此容器将包含根证书、中间证书和叶证书。
共享卷将同时附加到证书信任程序容器和 Orchestrator 服务容器。 它与 RHEL 操作系统证书信任存储区具有相同的路径: /etc/pki/ca-trust/ca/source/anchors 。
在运行 Orchestrator 之前,证书信任程序会执行作业,该作业将在/etc/pki/ca-trust/ca/source/anchors位置的共享卷中添加证书并终止。证书将通过共享卷用于 Orchestrator 服务。
下图显示了 Pod 级别的证书架构。
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命名空间中的证书,您必须运行uipathctl config tls-certificates 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