automation-suite
2023.10
false
UiPath logo, featuring letters U and I in white

EKS/AKS 上的 Automation Suite 安装指南

上次更新日期 2024年12月18日

网络

您必须预配和配置 Azure 或 AWS 网络资源,以确保集群上的 Automation Suite 可以连接并访问云基础架构先决条件(例如,存储、数据库、缓存和 DNS)。 根据您的网络架构,这可能包括配置 VNET/VPC、DNS、子网、网络安全组/安全组、NAT 网关、弹性 IP 和互联网网关。 有关详细信息,请参阅部署方案

请注意,根据工作负载扩展情况,可能需要更多副本。默认情况下,HA 模式需要两个副本,最多需要十个或更多副本。请确保您的网络支持此扩展级别。

只要 Pod 可以相互通信,您就可以使用任何 CNI。我们的建议是使用 Azure CNI 或 Calico。

对于云 CNI,例如 Azure CNI 和 Amazon VPC CNI 有特殊注意事项,它们不支持内部或私有 Pod 网络子网。 Automation Suite 所需的 Pod 数量取决于您的产品选择和工作负载扩展。 例如,对于已启用所有服务且高利用率的部署,您可能需要 400 多个 IP 来支持扩展要求。 因此,我们建议分配至少为 /23 的 CIDR 范围。

重要提示:

Automation Suite 不支持 IPv6 互联网协议。

自定义入口控制器

如果您有自定义入口控制器 (NGINX),请参阅 配置 NGINX 入口 并跳过页面的其余部分。

负载均衡器配置

Automation Suite 在安装过程中代表您配置负载均衡器。 必须为负载均衡器分配公共或私有 IP 地址,才能路由传入的 FQDN 请求。 您可以通过两个选项配置负载均衡器:

  • 预分配的 IP:为负载均衡器分配公共 IP 或私有 IP,配置 DNS 记录以将 FQDN 映射到这些 IP,并将这些 IP 作为 input.json的入口部分的一部分提供。
  • 动态分配的 IP: 如果您不提供 IP 地址,则 Automation Suite 会将 IP 从集群子网动态分配给负载均衡器。

负载均衡器上的网络安全组必须允许通过端口 443 来自最终客户端的 HTTPS 流量。 默认情况下,我们将负载均衡器配置为定期进行 TCP 运行状况检查。

如果使用自己的入口(例如 NGINX),请确保您满足配置 NGINX 入口控制器中记录的网络要求。 使用部署 NLB 的 Istio 时,请注意,它通常会创建三个侦听器,其中包括端口 80、443 和 15021。 但是,这是典型设置,您的实际要求可能会因您的确切情况而异,因此请根据需要进行调整。

预分配的 IP

您必须在 input.jsoningress 部分中提供以下服务注释。

有关 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_0>", "<SUBNET_1>" 
    }
  }
......
"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_0>", "<SUBNET_1>" 
    }
  }
...
重要提示:

IP 和子网必须匹配。

在上一个示例中, <IP_0> 位于 <SUBNET_0> 中, <IP_1> 位于 <SUBNET_1>中。

DNS 配置

确保配置 DNS 记录以将以下 UiPath™ FQDN 映射到负载均衡器:

  • FQDN
  • alm.FQDN
  • 监控.FQDN
  • insights.FQDN (如果安装 UiPath Insights)
备注:

FQDN 是安装前的先决条件检查之一。 如果未提供 IP 地址或尚未完成 FQDN 映射,则检查将失败。

动态分配的 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"
    }
  }
...

安装步骤

在这种情况下,请按如下方式运行安装程序:

  1. 仅在配置负载均衡器之前运行安装程序:

    uipathctl manifest apply <INPUT_JSON> --versions <VERSIONS_JSON> --override=gatewayuipathctl manifest apply <INPUT_JSON> --versions <VERSIONS_JSON> --override=gateway
  2. 检索负载均衡器主机名:

    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}'
  3. 使用映射到负载均衡器端点或 IP 的 FQDN 配置 DNS。

  4. 重新运行安装程序以完成安装:

    uipathctl manifest apply input.json --versions versions.jsonuipathctl manifest apply input.json --versions versions.json
备注:

请注意,如果没有 DNS 映射,FQDN 先决条件检查将失败。 先决条件检查旨在让您确信在安装 Automation Suite 之前已正确配置所有先决条件。 FQDN 检查不会阻止您安装 Automation Suite 。

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。