- 概述
- 要求
- 预安装
- 安装
- 安装后
- 迁移和升级
- 监控和警示
- 集群管理
- 特定于产品的配置
- 故障排除
- 由于无法连接到 Azure Government,备份设置不起作用
- 启用自定义节点污点时,UiPath 命名空间中的 Pod 卡住
- 无法使用代理设置启动 Automation Hub 和 Apps
- 由于“验证失败”错误,Velero 备份失败
- 外部密码故障排除
- 时间即服务故障排除
- 无法在启用 TLS 证书验证的情况下启动 AI Center 和 Document Understanding Pod
- TLS 证书验证错误
- Fluentd 不会在 IPv6 环境中导出日志
- Studio 桌面版无法加载 Integration Service 连接器和活动
- 手动 ArgoCD 网络策略缓解措施 (MHSA-47m3-95c7-g2g8)
- 为 uipathctl 创建的工作负载配置资源请求和限制
EKS/AKS 上 Automation Suite 的网络配置和要求。
您必须预配和配置 Azure 或 AWS 网络资源,以确保集群上的 Automation Suite 可以连接和访问云基础架构先决条件(例如,存储、数据库、缓存和 DNS)。根据您的网络架构,这可能包括配置 VNET/VPC、DNS、子网、网络安全组/安全组、NAT 网关、弹性 IP 和互联网网关。有关详细信息,请参阅部署方案。
请注意,根据工作负载扩展情况,可能需要更多副本。默认情况下,HA 模式需要两个副本,最多需要十个或更多副本。请确保您的网络支持此扩展级别。
只要 Pod 可以相互通信,您就可以使用任何 CNI。此外,为了从 Automation Suite 包含的网络策略中受益,您的 CNI 必须支持并强制执行 Kubernetes 网络策略。默认情况下,某些 CNI(例如 Amazon VPC CNI)不启用网络策略强制执行。有关详细信息,请参阅网络策略。
云 CNI(例如 Azure CNI 和 Amazon VPC CNI)有特殊注意事项,它们不支持内部或私有 Pod 网络子网。Automation Suite 所需的 Pod 数量取决于您的产品选择和工作负载扩展。例如,对于已启用所有服务且利用率较高的部署,您可能需要 400 多个 IP 来支持扩展要求。
因此,我们建议至少分配 /23 的 CIDR 范围。
Automation Suite 支持 IPv6 和双堆栈配置。
不支持从单堆栈 IPv4 迁移到双堆栈或单堆栈 IPv6。
所有外部依赖项(例如 SQL、Redis、对象存储和外部 DNS)必须支持启用的 IP 系列。
不建议也不支持更改 IP 表。
IPv6或双堆栈配置
要启用 IPv6 或双堆栈,必须在input.json文件中配置network参数,以指定 Automation Suite 是使用 IPv4、 IPv6 还是两者同时使用。
您可以按如下方式对其进行配置:
-
双堆栈配置:为 Automation Suite 服务和入口组件启用 IPv4 和 IPv6 通信。
您可以使用以下示例来配置双堆栈网络:
"network": { "ipv4": { "enabled": true }, "ipv6": { "enabled": true } }"network": { "ipv4": { "enabled": true }, "ipv6": { "enabled": true } } -
单堆栈 IPv6 配置:启用“仅 IPv6”通信并禁用 IPv4。
您可以使用以下示例来配置单堆栈 IPv6 网络:
"network": { "ipv4": { "enabled": false }, "ipv6": { "enabled": true } }"network": { "ipv4": { "enabled": false }, "ipv6": { "enabled": true } }
某些 Integration Service 连接器可能不支持 IPv6。在启用此功能之前,请检查您使用的连接器的提供程序文档和身份验证要求,以确保支持 IPv6。
自定义入口控制器
如果您有自定义入口控制器 (NGINX),请参阅“配置 NGINX 入口”并跳过页面的其余部分。
负载均衡器配置
Automation Suite 在安装过程中代表您配置负载均衡器。 必须为负载均衡器分配公共或私有 IP 地址,才能路由传入的 FQDN 请求。 您可以通过两个选项配置负载均衡器:
- 预分配的 IP :为负载均衡器分配公共或私有 IP,配置 DNS 记录以将 FQDN 映射到这些 IP,并在
input.json的入口部分中提供这些 IP。 - 动态分配的 IP:如果不提供 IP 地址,Automation Suite 则会将集群子网中的 IP 动态分配给负载均衡器。
负载均衡器上的网络安全组必须允许通过端口 443 来自最终客户端的 HTTPS 流量。 默认情况下,我们将负载均衡器配置为定期进行 TCP 运行状况检查。
如果使用自己的入口(如 NGINX),请确保满足“配置 NGINX 入口控制器”中记录的网络要求。请注意,当使用部署 NLB 的 Istio 时,它通常会创建三个侦听器,其中包括端口 80、443 和 15021。但是,这是典型设置,您的实际要求可能因您的确切情况而异,因此请根据需要进行调整。
预分配的 IP
您必须在 input.json的 ingress 部分中提供以下服务注释。
有关 EKS 中的服务注释列表,请参阅AWS 负载均衡器文档。
有关 AKS 中的服务注释列表,请参阅Azure 负载均衡器文档。
EKS 注释示例
以下示例显示了如何在 input.json 中创建 ingress.service_annotations 节。在安装示例之前,您必须在 EKS 集群上部署 AWS 负载均衡器控制器,以使其正常工作。
以下示例显示了如何从 AWS 分配弹性 IP 并配置公共负载均衡器。 如果您使用此示例作为配置的起点,请确保将 IP 替换为实际值。
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "ssl",
"service.beta.kubernetes.io/aws-load-balancer-eip-allocations": "<elastic_ip_id_0>,<elastic_ip_id_1>",
"service.beta.kubernetes.io/aws-load-balancer-nlb-target-type": "ip",
"service.beta.kubernetes.io/aws-load-balancer-scheme": "internet-facing",
"service.beta.kubernetes.io/aws-load-balancer-type": "nlb"
}
}
...
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "ssl",
"service.beta.kubernetes.io/aws-load-balancer-eip-allocations": "<elastic_ip_id_0>,<elastic_ip_id_1>",
"service.beta.kubernetes.io/aws-load-balancer-nlb-target-type": "ip",
"service.beta.kubernetes.io/aws-load-balancer-scheme": "internet-facing",
"service.beta.kubernetes.io/aws-load-balancer-type": "nlb"
}
}
...
以下示例显示了如何从 EKS 集群子网将私有 IP 分配给内部负载均衡器。 如果使用此示例作为配置的起点,请确保使用实际值更新 IP 和子网。
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "ssl",
"service.beta.kubernetes.io/aws-load-balancer-nlb-target-type": "ip",
"service.beta.kubernetes.io/aws-load-balancer-private-ipv4-addresses":""<IP_0>,<IP_1>"",
"service.beta.kubernetes.io/aws-load-balancer-subnets": "SUBNET_ID_0>,<SUBNET_ID_1>",
"service.beta.kubernetes.io/aws-load-balancer-scheme": "internal",
"service.beta.kubernetes.io/aws-load-balancer-type": "nlb"
"service.beta.kubernetes.io/aws-load-balancer-target-group-attributes": "preserve_client_ip.enabled=false"
}
}
...
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "ssl",
"service.beta.kubernetes.io/aws-load-balancer-nlb-target-type": "ip",
"service.beta.kubernetes.io/aws-load-balancer-private-ipv4-addresses":""<IP_0>,<IP_1>"",
"service.beta.kubernetes.io/aws-load-balancer-subnets": "SUBNET_ID_0>,<SUBNET_ID_1>",
"service.beta.kubernetes.io/aws-load-balancer-scheme": "internal",
"service.beta.kubernetes.io/aws-load-balancer-type": "nlb"
"service.beta.kubernetes.io/aws-load-balancer-target-group-attributes": "preserve_client_ip.enabled=false"
}
}
...
IP 和子网必须匹配。
在上一个示例中, <IP_0> 位于 <SUBNET_0> 中, <IP_1> 位于 <SUBNET_1>中。
AKS 注释示例
以下示例显示了如何从 Azure 分配公共 IP 并配置公共负载均衡器。 如果使用此示例作为配置的起点,请确保使用实际值更新 IP。
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/azure-load-balancer-internal": "false",
"service.beta.kubernetes.io/azure-load-balancer-ipv4": "<IP>"
}
}
...
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/azure-load-balancer-internal": "false",
"service.beta.kubernetes.io/azure-load-balancer-ipv4": "<IP>"
}
}
...
以下示例显示了如何将 AKS 集群子网中的私有 IP 分配到内部负载均衡器。如果您使用此示例作为配置的起点,请确保使用实际值更新 IP 和子网。
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/azure-load-balancer-internal": "true",
"service.beta.kubernetes.io/azure-load-balancer-ipv4": "<IP>",
"service.beta.kubernetes.io/azure-load-balancer-internal-subnet": "<SUBNET>",
}
}
...
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/azure-load-balancer-internal": "true",
"service.beta.kubernetes.io/azure-load-balancer-ipv4": "<IP>",
"service.beta.kubernetes.io/azure-load-balancer-internal-subnet": "<SUBNET>",
}
}
...
DNS 配置
确保配置 DNS 记录以将以下 UiPath™ FQDN 映射到负载均衡器:
FQDNalm.FQDNmonitoring.FQDNinsights.FQDN(如果安装 UiPath Insights)apps.FQDN(如果安装 UiPath Apps)
FQDN 是安装前的先决条件检查之一。 如果未提供 IP 地址或尚未完成 FQDN 映射,则检查将失败。
对 DNS 使用 Route 53 时,请将相关的 DNS 记录更改为直接指向在安装过程中创建的弹性负载均衡器 (ELB) 的别名记录。这可确保正确路由和更快解决问题,尤其是当在 AWS 环境中进行多可用区安装涉及多个公共 IP 时。
动态分配的 IP
如果在 input.json中未提供任何 IP,则 Automation Suite 将从工作器节点子网动态分配私有 IP。 在这种情况下,请通过以下方式运行 Automation Suite 安装。
input.json 的 EKS 示例
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "ssl",
"service.beta.kubernetes.io/aws-load-balancer-nlb-target-type": "ip",
"service.beta.kubernetes.io/aws-load-balancer-scheme": "internal",
"service.beta.kubernetes.io/aws-load-balancer-type": "nlb",
"service.beta.kubernetes.io/aws-load-balancer-internal": true
}
}
...
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "ssl",
"service.beta.kubernetes.io/aws-load-balancer-nlb-target-type": "ip",
"service.beta.kubernetes.io/aws-load-balancer-scheme": "internal",
"service.beta.kubernetes.io/aws-load-balancer-type": "nlb",
"service.beta.kubernetes.io/aws-load-balancer-internal": true
}
}
...
input.json 的 AKS 示例
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/azure-load-balancer-internal": "true"
}
}
...
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/azure-load-balancer-internal": "true"
}
}
...
安装步骤
在这种情况下,请按如下方式运行安装程序:
-
仅在配置负载均衡器之前运行安装程序:
uipathctl manifest apply <INPUT_JSON> --versions <VERSIONS_JSON> --override=gatewayuipathctl manifest apply <INPUT_JSON> --versions <VERSIONS_JSON> --override=gateway -
检索负载均衡器主机名:
kubectl get svc -n <istio-system> istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'kubectl get svc -n <istio-system> istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}' -
使用映射到负载均衡器端点或 IP 的 FQDN 配置 DNS。
-
重新运行安装程序以完成安装:
uipathctl manifest apply input.json --versions versions.jsonuipathctl manifest apply input.json --versions versions.json
请注意,如果没有 DNS 映射,FQDN 先决条件检查将失败。 先决条件检查旨在让您确信在安装 Automation Suite 之前已正确配置所有先决条件。 FQDN 检查不会阻止您安装 Automation Suite 。