- 概述
- 要求
- 安装
- 安装后
- 集群管理
- 监控和警示
- 迁移和升级
- 特定于产品的配置
- 最佳实践和维护
- 故障排除
- 无法获取沙盒映像
- 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 指标
- 使用 Automation Suite 诊断工具
- 使用 Automation Suite 支持包工具
- 探索日志
证书概述
本页介绍 Automation Suite 安装所需的所有证书,以及证书轮换流程的原则。
https://automationsuite.mycompany.com/identity
连接到身份服务器以进行用户身份验证。
虽然两个不同的 Automation Suite 产品必须使用集群的 FQDN,但它们也可以包含多个微服务。 这些微服务可以使用内部 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 将请求转发回客户端。 如果客户端计算机信任证书,则整个请求都会成功。 否则,请求将失败。
本节介绍机器人尝试连接到 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。
/etc/pki/ca-trust/ca/
中。
此路径是 RHEL OS 存储所有证书的位置。 每个容器都有自己的证书信任存储。 作为 Automation Suite 配置的一部分,我们会注入包含根证书、所有中间证书以及叶证书的整个证书链,并将其存储在此路径中。 由于服务信任根证书和中间证书,因此它们会自动信任由根证书和中间证书创建的任何其他证书。
Automation Suite 中有数百个容器正在运行。 为所有服务的每个容器手动添加证书将是一项艰巨的任务。 但是,Automation Suite 包含一个 共享卷 和一个初始化容器 证书信任 程序,以帮助完成此任务。 Init 是一个专用容器,在 Pod 中在应用程序容器之前运行,其生命周期在完成作业后立即结束。
在以下示例中,Orchestrator 服务在一个 Pod 中运行。 需要提醒的是,一个 Pod 可以包含多个容器。 在此 Pod 中,我们再注入一个名为 Cert-trustor 的Init 容器。 此容器将包含根证书、中间证书和叶证书。
/etc/pki/ca-trust/ca/source/anchors
。
/etc/pki/ca-trust/ca/source/anchors
位置的共享卷中添加证书并终止。
证书将通过共享卷提供给 Orchestrator 服务。
作为 Automation Suite 安装的一部分,系统将生成以下证书:
- 安装时生成的自签名证书 ,有效期为 3 个月。 安装后,您必须将自签名证书替换为域证书。 请参阅 管理证书。
- 用于对身份验证中使用的 JWT 令牌进行签名的Identity Server 证书 。 如果未提供用于对 JWT 令牌进行签名的证书,Automation Suite 将使用当前配置的 TLS 证书(可以是自签名证书或客户提供的证书),该证书将在 90 天后过期。 如果您想使用自己的证书来签名身份令牌,则可以按照 管理证书中的说明进行配置。
- 通过证书管理器生成的 MongoDB 内部证书 。 Automation Suite 为 MongoDB 提供有效期为 3 年的内部证书。 证书将自动轮换,无需手动干预。 有关更多详细信息,请参阅 MongoDB 证书续订。
- 系统会生成RKE2 证书 ,默认情况下,该证书将在 12 个月后过期。 如果证书已过期或在 90 天内过期,则在重新启动 RKE2 时轮换证书。
- 如果启用,SAML2 身份验证协议可以使用服务证书。
- 如果使用用户名和密码配置 Active Directory,则 LDAPS (LDAP Over SSL) 为可选项。如果选择 LDAPS,则必须提供证书。系统会将此证书添加到 Automation Suite 的受信任根证书颁发机构中。有关详细信息,请参阅 Microsoft 文档。
此证书将添加到 Automation Suite 的受信任根证书颁发机构中。
证书存储在两个位置:
- {
istio-system
中的istio-ingressgateway-certs
} uipath
命名空间
istio-system
和uipath
命名空间中的证书,您必须运行sudo ./configureUiPathAS.sh tls-cert update
命令。
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