UiPath Documentation
automation-suite
2023.4
false
Guia de instalação do Automation Suite no EKS/AKS
Importante :
A tradução automática foi aplicada parcialmente neste conteúdo. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Rede

You must provision and configure Azure or AWS networking resources to ensure that Automation Suite on your cluster has connectivity and access to the cloud infrastructure prerequisites (e.g., storage, database, cache, and DNS). Depending on your networking architecture, this may include configuring VNETs / VPC, DNS, subnets, NSGs / security groups, NAT gateway, elastic IP, and internet gateway. For details, see Deployment scenarios.

Observe que, com base na escalabilidade da carga de trabalho, poderão ser necessárias mais réplicas. Por padrão, o modo HA requer duas réplicas e pode ir até dez ou mais réplicas. Certifique-se de que sua rede ofereça suporte a esse nível de escalabilidade.

Você pode usar qualquer CNI desde que os pods possam comunicar-se entre si.

Há considerações especiais para CNIs de nuvem, como Azure CNI e Amazon VPC CNI, que não são compatíveis com sub-redes de rede de pods internos ou privados. O número de pods necessários para o Automation Suite depende da sua seleção de produtos e do dimensionamento da carga de trabalho. Por exemplo, para uma implantação com todos os serviços habilitados e em alta utilização, você pode precisar de mais de 400 IPs para suportar os requisitos de escalabilidade. Por isso, recomendamos alocar um intervalo CIDR de pelo menos /23.

Importante:

O Automation Suite não é compatível com o protocolo de internet IPv6.

Controlador de entrada personalizado​

Se você tiver um controlador de ingresso personalizado (NGINX), consulte Configuração do ingresso do NGINX e ignore o restante da página.

Configuração do balanceador de carga​

O Automation Suite provisiona um balanceador de carga em seu nome durante a instalação. O balanceador de carga deve ser atribuído com endereços IP públicos ou privados para rotear as solicitações de FQDN. Você tem duas opções para configurar o balanceador de carga:

  • IPs pré-alocados: aloque IPs públicos ou privados para o balanceador de carga, configure os registros DNS para mapear os FQDNs para esses IPs e forneça esses IPs como parte da seção Ingress de input.json.
  • IPs alocados dinamicamente: se você não fornecer um endereço IP, o Automation Suite alocará dinamicamente IPs da sub-rede do cluster para o balanceador de carga.

Os grupos de segurança de rede no balanceador de carga devem permitir o tráfego HTTPS de clientes finais via porta 443. Por padrão, configuramos o balanceador de carga para realizar verificações regulares de integridade do TCP.

Se estiver usando seu próprio ingresso, como o NGINX, certifique-se de atender aos requisitos de rede documentados em Configuração do controle de ingresso do NGINX . Ao usar o Istio que implanta um NLB, observe que ele normalmente cria três ouvintes, que incluem as portas 80, 443 e 15021. No entanto, essa é uma configuração típica, e seus requisitos reais podem diferir com base em suas circunstâncias exatas; portanto, ajuste conforme necessário.

IPs pré-alocados​

Você deve fornecer as seguintes anotações de serviço na seção ingress do input.json.

Para obter uma lista de anotações de serviço no EKS, consulte a documentação do balanceador de cargas da AWS.

Para obter uma lista de anotações de serviço no AKS, consulte a documentação do balanceador de carga do Azure.

Exemplos de anotações do EKS​

Os seguintes exemplos mostram como criar a seção ingress.service_annotations em input.json. Você deve implantar um controlador de balanceador de carga da AWS em seu cluster do EKS antes da instalação para que os exemplos funcionem corretamente.

O exemplo a seguir mostra como alocar IPs elásticos da AWS e provisionar um balanceador de carga público. Se você usar este exemplo como um ponto de partida para sua configuração, certifique-se de substituir os IPs por valores reais.

"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"
    }
  }

O exemplo a seguir mostra como alocar IPs privados para um balanceador de carga interno das sub-redes do cluster EKS. Se você usar esse exemplo como um ponto de partida para sua configuração, certifique-se de atualizar os IPs e sub-redes com valores reais.

 "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"
    }
  }
Importante:

Os IPs e sub-redes devem corresponder.

No exemplo anterior, <IP_0> está em <SUBNET_0> e <IP_1> em <SUBNET_1>.

Exemplo de anotações do AKS​

O exemplo a seguir mostra como alocar IPs públicos do Azure e provisionar um balanceador de carga público. Se você usar esse exemplo como um ponto de partida para sua configuração, certifique-se de atualizar os IPs com valores reais.

...
"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>"
    }
  }
...

O exemplo a seguir mostra como alocar IPs privados a um balanceador de carga interno a partir das sub-redes do cluster do AKS. Se você usar esse exemplo como ponto de partida para sua configuração, certifique-se de atualizar os IPs e sub-redes com valores reais.

...
"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>",
    }
  }
...

Configuração de DNS​

Certifique-se de que os registros de DNS estejam configurados para mapear os seguintes FQDNs da UiPath® para o balanceador de carga:

  • FQDN
  • alm.FQDN
  • monitoring.FQDN
  • insights.FQDN (se estiver instalando o UiPath Insights)
Observação:

O FQDN é uma das verificações de pré-requisitos antes da instalação. Se você não fornecer um endereço IP ou ainda não tiver feito o mapeamento de FQDN, a verificação será reprovada.

IPs alocados dinamicamente​

Se você não fornecer nenhum IP em input.json, o Automation Suite aloca dinamicamente os IPs privados das sub-redes do nó de trabalho. Nesse cenário, execute a instalação do Automation Suite da seguinte maneira.

Exemplo EKS do input.json​

...
  "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
    }
  }
...

Exemplo do AKS do input.json​

...
  "ingress": {
    "service_annotations": {
      "service.beta.kubernetes.io/azure-load-balancer-internal": "true"
    }
  }
...
...
  "ingress": {
    "service_annotations": {
      "service.beta.kubernetes.io/azure-load-balancer-internal": "true"
    }
  }
...

Passos de instalação​

Nesse cenário, execute o instalador da seguinte maneira:

  1. Execute o instalador apenas até o provisionamento do Balanceador de carga:

    uipathctl manifest apply <INPUT_JSON> --versions <VERSIONS_JSON> --override=gateway
    uipathctl manifest apply <INPUT_JSON> --versions <VERSIONS_JSON> --override=gateway
    
  2. Recupere o nome do host do balanceador de carga:

    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. Configure seu DNS com FQDNs mapeados para o endpoint ou IPs do balanceador de carga.

  4. Execute novamente o instalador para concluir a instalação:

    uipathctl manifest apply input.json --versions versions.json
    uipathctl manifest apply input.json --versions versions.json
    
Observação:

Observe que, sem o mapeamento de DNS, a verificação de pré-requisitos do FQDN falhará. As verificações de pré-requisitos são feitas para dar a você a confiança de que você provisionou todos os pré-requisitos corretamente antes de instalar o Automation Suite . A verificação do FQDN não impede a instalação do Automation Suite .

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades