- 概述
- 要求
- 安装
- 安装后
- 集群管理
- 监控和警示
- 迁移和升级
- 特定于产品的配置
- 最佳实践和维护
- 故障排除
- 无法获取沙盒映像
- 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 支持捆绑包
- 探索日志
本页介绍 Automation Suite 安装所需的所有证书,以及证书轮换流程的原则。
For details on the certificates you must provide when replacing the self-signed certificates, see Certificate requirements.
了解信任证书的工作方式
Automation Suite 内产品之间的服务间通信通过集群的 FQDN 完成。 产品无法使用内部 URL 相互通信。 例如,Orchestrator 可以通过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 将请求转发回客户端。 如果客户端计算机信任证书,则整个请求都会成功。 否则,请求将失败。
了解机器人与 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 OS 存储所有证书的位置。 每个容器都有自己的证书信任存储。 作为 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 服务。
Automation Suite 中所有证书的清单
安装期间生成的证书
作为 Automation Suite 安装的一部分,系统将生成以下证书:
- Self-signed certificate generated at the time of installation, which is valid for 3 months. You must replace the self-signed certificate with a domain certificate post-installation. See Managing certificates.
- Identity Server certificate for signing JWT tokens used in authentication. If the certificate for signing the JWT token is not provided, Automation Suite uses the currently configured TLS certificate (can be the self-signed one or customer provided one), which expired in 90 days. If you want to have your own certificate for signing identity token, you can configure using the instructions in Managing certificates.
- Internal certificate for MongoDB generated via the cert manager. Automation Suite provides an internal certificate for MongoDB that is valid for 3 years. The certificate will rotate automatically, and no manual intervention is required. For more details, see MongoDB certificate renewal.
- 系统会生成RKE2 证书,默认情况下,该证书将在 12 个月后过期。 如果证书已过期或在 90 天内过期,则在重新启动 RKE2 时轮换证书。
其他证书
- 如果启用,SAML2 身份验证协议可以使用服务证书。
- If you configure Active Directory using a username and password, LDAPS (LDAP Over SSL) is optional. If you opt for LDAPS, you must provide a certificate. This certificate will be added into Automation Suite’s Trusted Root Certification Authorities. For details, see Microsoft documentation.
了解证书更新/轮换的工作原理
在线安装
证书存储在两个位置:
- {
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