automation-suite
2024.10
true
UiPath logo, featuring letters U and I in white

Guia de instalação do Automation Suite no OpenShift

Última atualização 18 de dez de 2024

Instalação e configuração do service mesh

O Automation Suite requer o service mesh do Istio para o Ingress e a rede.

A Red Hat fornece o OpenShift Service Mesh, que depende do Istio internamente.

A instalação e configuração do service mesh é um processo em duas etapas. Qual das etapas você deve executar depende de se você pode ou não conceder ao instalador do Automation Suite privilégios de administrador sobre seu cluster. Para obter detalhes, consulte a tabela a seguir:

Etapa

Privilégios de administrador

Sem privilégios de administrador

Etapa 1: instalar o service mesh

Etapa obrigatória

Etapa obrigatória

Etapa 2: Configurando o Istio e instalando o plug-in HASM para roteamento

Etapa não necessária

Etapa obrigatória

Etapa 1: instalar o service mesh

Para instalar o OpenShift Service Mesh, siga as instruções na documentação do OpenShift Service Mesh.

Observação:

O Automation Suite não requer aplicativos como o Kiali e o Jaeger. No entanto, você pode usá-los como quiser.

A UiPath® não tem uma opinião sobre a configuração do Operador do Service Mesh para ser executado em qualquer nó.

Para criar o Plano de Controle do OpenShift Service Mesh, siga as instruções na documentação Plano de Controle do OpenShift Service Mesh. Certifique-se de executar também as seguintes etapas:
  1. Instale a nova instância do plano de controle do service mesh no namespace <istio-system> .
  2. Use o modo ClusterWide para o plano de controle do service mesh. Para o modo MultiTenant , consulte o ponto 3 nesta página. O seguinte bloco deve estar presente na spec seção do ServiceMeshControlPlane recurso :
    gateways:
        enabled: true
        openshiftRoute:
          enabled: true
      mode: ClusterWide  gateways:
        enabled: true
        openshiftRoute:
          enabled: true
      mode: ClusterWide
    Para desabilitar a rota OpenShift, consulte o ponto 4 nesta página.
  3. Você pode usar o modo MultiTenant para o plano de controle da malha de serviço. Esse cenário requer que você crie explicitamente uma lista de membros da malha de serviço, conforme mostrado na seguinte amostra:
    apiVersion: maistra.io/v1
    kind: ServiceMeshMemberRoll
    metadata:
      name: default
      namespace: <istio-system>
    spec:
      members:
        - <uipath>apiVersion: maistra.io/v1
    kind: ServiceMeshMemberRoll
    metadata:
      name: default
      namespace: <istio-system>
    spec:
      members:
        - <uipath>
  4. Você também tem a opção de desabilitar a rota OpenShift. No entanto, essa escolha vem com a responsabilidade adicional de criar manualmente uma rota para o FQDN. Para a criação manual de rotas, consulte o seguinte exemplo:
    kind: Route
    apiVersion: route.openshift.io/v1
    metadata:
      name: uipath-route
      namespace: <istio-system>
      labels:
        app: istio-ingressgateway
        app.kubernetes.io/part-of: istio
        app.kubernetes.io/instance: <istio-system>
        maistra.io/owner-name: basic
        release: istio
        app.kubernetes.io/version: 2.6.1-1-1
        app.kubernetes.io/component: istio-ingress
        maistra-version: 2.6.1
        istio: ingressgateway
        app.kubernetes.io/managed-by: maistra-istio-operator
        maistra.io/owner: <istio-system>
        istio.io/rev: basic
        app.kubernetes.io/name: istio-ingress
    spec:
      to:
        kind: Service
        name: istio-ingressgateway
      tls:
        termination: passthrough
        insecureEdgeTerminationPolicy: Redirect
      host: <fqdn>
      port:
        targetPort: https
      alternateBackends: []kind: Route
    apiVersion: route.openshift.io/v1
    metadata:
      name: uipath-route
      namespace: <istio-system>
      labels:
        app: istio-ingressgateway
        app.kubernetes.io/part-of: istio
        app.kubernetes.io/instance: <istio-system>
        maistra.io/owner-name: basic
        release: istio
        app.kubernetes.io/version: 2.6.1-1-1
        app.kubernetes.io/component: istio-ingress
        maistra-version: 2.6.1
        istio: ingressgateway
        app.kubernetes.io/managed-by: maistra-istio-operator
        maistra.io/owner: <istio-system>
        istio.io/rev: basic
        app.kubernetes.io/name: istio-ingress
    spec:
      to:
        kind: Service
        name: istio-ingressgateway
      tls:
        termination: passthrough
        insecureEdgeTerminationPolicy: Redirect
      host: <fqdn>
      port:
        targetPort: https
      alternateBackends: []
    
    Aviso: desabilitar a rota OpenShift levará ao seguinte erro ao executar as verificações de pré-requisitos:
    [ISTIO_SERVICEMESH_VALIDATION_URL_ACCESS] error accessing the url. unexpected status code: 503 ❌ [ISTIO_SERVICEMESH_VALIDATION_URL_ACCESS] error accessing the url. unexpected status code: 503

Instalação de uma versão específica do OpenShift Service Mesh

Use um arquivo YAML para instalar uma versão específica do OpenShift Service Mesh (OSSM). O seguinte arquivo de exemplo instala a versão 2.4.5 do OSSM:
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: servicemeshoperator
  namespace: openshift-operators
spec:
  channel: stable
  installPlanApproval: Manual
  name: servicemeshoperator
  source: redhat-operators
  sourceNamespace: openshift-marketplace
  startingCSV: servicemeshoperator.v2.4.5apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: servicemeshoperator
  namespace: openshift-operators
spec:
  channel: stable
  installPlanApproval: Manual
  name: servicemeshoperator
  source: redhat-operators
  sourceNamespace: openshift-marketplace
  startingCSV: servicemeshoperator.v2.4.5
Se você planeja instalar uma versão diferente do OSSM, substitua servicemeshoperator.v2.4.5 pelo valor correto para sua versão no arquivo YAML. Por exemplo, para instalar a versão 2.5.0 do OSSM, insira servicemeshoperator.v2.5.0.
Para instalar o OSSM, execute o seguinte comando:
oc apply -f <yaml>oc apply -f <yaml>
Substitua o espaço reservado <yaml> no comando de exemplo pelo nome do seu arquivo YAML.
Importante: após instalar o OSSM, você deve aprovar manualmente a instalação.

No console do OpenShift, acesse Operadores > Operadores Instalados > Serviceme Shoperator > 1 requer aprovação > Visualizar Plano de Instalação > Aprovar.

Fornecimento da configuração do Istio

Para fornecer a configuração do Istio, você deve definir os seguintes parâmetros no arquivo input.json :
"ingress": {
  "gateway_selector": {
    "istio": "ingressgateway"
  },
  "ingress_gateway_secret": "istio-ingressgateway-certs",
  "namespace": "<istio-system>"
},"ingress": {
  "gateway_selector": {
    "istio": "ingressgateway"
  },
  "ingress_gateway_secret": "istio-ingressgateway-certs",
  "namespace": "<istio-system>"
},
Para obter mais informações sobre os parâmetros de configuração do Istio, consulte a seguinte tabela:

Parâmetro

Valor

ingress.gateway_selector.istio
Valor padrão:ingressgateway

Se você tiver alterado o valor, use o seguinte comando para obter o valor correto:

oc -n <istio-system> get deploy istio-ingressgateway -o jsonpath="{.metadata.labels.istio}"; echooc -n <istio-system> get deploy istio-ingressgateway -o jsonpath="{.metadata.labels.istio}"; echo
ingress.ingress_gateway_secret
O nome do segredo que contém os arquivos de certificado. O valor padrão é istio-ingressgateway-certs.
ingress.namespaceO namespace onde você instalou o service mesh.

Etapa 2: Configurando o Istio e instalando o plug-in HASM para roteamento

Visão geral

Importante:

Esta etapa requer privilégios de administrador para instalação no namespace do Istio.

Há duas maneiras de realizar a instalação:
  • Opção A: se você não puder fornecer as permissões que o instalador do Automation Suite requer, você deverá executar essa etapa antes da instalação do Automation Suite.

  • Opção B: durante a instalação do Automation Suite. Este método requer que o arquivo Kubeconfig que você usa durante a instalação do Automation Suite tenha as permissões necessárias. Para revisar as permissões, consulte a seção Concedendo permissões de instalação . Se você puder fornecer todas as permissões necessárias, pule esta etapa.

Pré-requisitos

Antes de configurar o Istio e instalar o plug-in do HASM para roteamento, você deve atender aos seguintes pré-requisitos:
  • Use uma máquina Linux, Windows ou macOS com acesso ao servidor da API OpenShift Kubernetes.

  • Instale o cliente do OpenShift CLI na sua máquina. Para obter detalhes, consulte OpenShift CLI (oc).

  • Instale o Helm 3.14 ou mais recente na máquina na qual você planeja instalar o plug-in do HASM e autentique o Helm em seu registro privado. Para instalar e autenticar o Helm, execute as seguintes etapas:

    1. Baixe e instale os binários do Helm em sua máquina. Para obter mais detalhes, consulte a documentação do Helm.

    2. Autentique o Helm no seu registro seguindo as instruções na documentação do Helm. Como alternativa, use o seguinte comando, substituindo os valores de exemplo por seu URL e credenciais reais do registro:
      helm registry login my.registry.io:443 --username "admin" --password "secret"helm registry login my.registry.io:443 --username "admin" --password "secret"

Configuração e instalação

Para configurar o Istio e instalar o plug-in do HASM para roteamento, siga as seguintes etapas:

  1. Crie um imagepullsecret no namespace onde você instalou o service mesh. Para criar o imagepullsecret, use seu fluxo de trabalho típico ou siga as seguintes etapas:
    registry= <registry_url> #provide the registry where the UiPath images are hosted
    username= <user_name> #provide the username which will be used for the authentication
    password= <password> #provide the password which will be used for the authentication
    namespace= <namespace> #namespace where you want to create a secret
    
    oc create secret docker-registry uipathpullsecret --namespace=${namespace} \
      --docker-server=${registry} --docker-username=${username} \
      --docker-password=${password} --dry-run=client -o yaml \
      | oc apply -f -registry= <registry_url> #provide the registry where the UiPath images are hosted
    username= <user_name> #provide the username which will be used for the authentication
    password= <password> #provide the password which will be used for the authentication
    namespace= <namespace> #namespace where you want to create a secret
    
    oc create secret docker-registry uipathpullsecret --namespace=${namespace} \
      --docker-server=${registry} --docker-username=${username} \
      --docker-password=${password} --dry-run=client -o yaml \
      | oc apply -f -
  2. Puxe o gráfico de helm para um diretório local, <uipath-istio-configure>:
    helm pull oci://<docker-registry>/helm/istio-configure --version <istio-configure-version> \
    --untar --untardir <uipath-istio-configure>helm pull oci://<docker-registry>/helm/istio-configure --version <istio-configure-version> \
    --untar --untardir <uipath-istio-configure>
    O seguinte exemplo mostra o comando após substituir os placeholders por valores reais:
    helm pull oci://registry.mycompany.com/helm/istio-configure --version 2024.10.0 \
    --untar --untardir uipath-istio-configurehelm pull oci://registry.mycompany.com/helm/istio-configure --version 2024.10.0 \
    --untar --untardir uipath-istio-configure
  3. Crie um arquivo de valores de parâmetros a ser aplicado durante a instalação do Helm de istio-configure. Use o exemplo a seguir como um modelo para o arquivo e substitua os placeholders <fqdn>, <pullsecret>, <registry> e <uipath_namespace> por valores apropriados.
    fqdn: <fqdn>    #the FQDN of the Automation Suite
    gateway:
      selector:
        istio: ingressgateway
    global:
      imagePullSecret:
        name: <pullsecret>    #name of pull secret which you had create earlier
    minProtocolVersion: TLSV1_2   #TLS versions
    uipath:
      registry: <registry>    #registry url without the protocol 
    uipathServiceNamespace: <uipath_namespace>   #namespace where the uipath application is deployed
    patchIstioService: false
    wasm:
      image:
        pullSecret: <pullsecret>    #name of pull secret which you had create earlier
        registry: oci://<registry>   #registry url without the protocolfqdn: <fqdn>    #the FQDN of the Automation Suite
    gateway:
      selector:
        istio: ingressgateway
    global:
      imagePullSecret:
        name: <pullsecret>    #name of pull secret which you had create earlier
    minProtocolVersion: TLSV1_2   #TLS versions
    uipath:
      registry: <registry>    #registry url without the protocol 
    uipathServiceNamespace: <uipath_namespace>   #namespace where the uipath application is deployed
    patchIstioService: false
    wasm:
      image:
        pullSecret: <pullsecret>    #name of pull secret which you had create earlier
        registry: oci://<registry>   #registry url without the protocol
  4. Instale istio-configure no namespace do Istio usando o Helm. No seguinte comando, substitua o placeholder <istio_namespace> pelo namespace no qual o Istio está instalado, e o <path_to_the_values_yaml> pelo local do arquivo YAML que contém os valores dos parâmetros:
    helm upgrade --debug --install --wait custom-istio-configure \
      uipath-istio-configure/istio-configure --version 2024.10.0 \
      --namespace <istio_namespace> -f <path_to_the_values.yaml>helm upgrade --debug --install --wait custom-istio-configure \
      uipath-istio-configure/istio-configure --version 2024.10.0 \
      --namespace <istio_namespace> -f <path_to_the_values.yaml>
  5. Se você usar um registro que não esteja assinado por uma autoridade conhecida, você deve adicionar a variável de ambiente WASM_INSECURE_REGISTRIES à implantação do istio-ingressgateway , para que o Istio possa extrair a imagem que o plug-in do WCS usa. Para adicionar a variável de ambiente, execute o comando a seguir:
    oc -n <istio-system> patch deployment istio-ingressgateway --type="json" --patch='[{"op":"add", "path": "/spec/template/spec/containers/0/env/-", "value": {"name": "WASM_INSECURE_REGISTRIES", "value": "customer-registry.com"}}]'oc -n <istio-system> patch deployment istio-ingressgateway --type="json" --patch='[{"op":"add", "path": "/spec/template/spec/containers/0/env/-", "value": {"name": "WASM_INSECURE_REGISTRIES", "value": "customer-registry.com"}}]'
  6. Adicione istio-configure à seção exclude_components no seu arquivo input.json .
  7. Crie segredos de certificado usando o nome fornecido em ingress.ingress_gateway_secret dentro do namespace. <istio-system>
Observação:

Se você atualizar a pós-instalação do FQDN, um dos seguintes cenários se aplicará:

  • Se você concedeu os privilégios de administrador do instalador do Automation Suite e não adicionou o componente istio-configure à lista exclude_components no seu arquivo input.json , você não precisa executar nenhuma etapa adicional.
  • Se você não concedeu os privilégios de administrador do instalador do Automation Suite e adicionou o componente istio-configure à lista exclude_components no seu arquivo input.json , você deve seguir as seguintes etapas:
    1. Atualize o arquivo de valores de parâmetros mencionado no Ponto 3 com o novo FQDN.

    2. Repita todas as etapas para configurar o Istio e instalar o plug-in do HASM para o roteamento.

Esta página foi útil?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Uipath Logo White
Confiança e segurança
© 2005-2024 UiPath. Todos os direitos reservados.