UiPath Documentation
automation-suite
2024.10
false

Guia de instalação do Automation Suite no OpenShift

Última atualização 8 de mai de 2026

Armazenamento

Além do Microsoft SQL Server, o cluster do Automation Suite requer um componente de armazenamento para armazenar os arquivos. O Automation Suite requer o objectstore e o armazenamento em bloco/arquivo, dependendo do tipo de serviço que você escolher.

Estimativa de armazenamento para cada componente do Automation Suite

Serviços de plataforma da UiPath®

Os serviços a seguir exigem o componente de armazenamento. Eles são necessários apenas se você tiver optado por habilitá-los como parte da instalação do Automation Suite ou posteriormente.

Serviço

Tipo de armazenamento

Finalidade

Estimativa

Orchestrator

Armazenamento de objeto

  • Pacotes de automação NuGet para automação implantada

  • Filas e seus dados

Normalmente, um pacote tem 5 Mb e os buckets, se houver, têm menos de 1 Mb. Uma Enterprise madura implanta cerca de 10 GB de pacotes e 12 GB de Filas.

Action Center

Armazenamento de objeto

  • Documentos armazenados pelo usuário em tarefas de documentos

Normalmente, um documento leva 0,15 Mb e os formulários a serem preenchidos levam 0,15 Kb adicionais. Em uma empresa madura, isso pode totalizar 4 GB.

Test Manager

Armazenamento de objeto

  • Anexos e capturas de tela armazenados pelos usuários

Normalmente, todos os arquivos e anexos somam aproximadamente 5 Gb.

Insights

Blockstore

  • Painéis publicados e seus metadados

2 GB são necessários para habilitação, com o espaço para dados inativos (pegada de disco) crescendo conforme número. Uma implantação em escala Enterprisebem estabelecida requer mais alguns GB para todos os painéis. Cerca de 10 GB de armazenamento devem ser suficientes.

Apps

Armazenamento de objeto

  • Anexos que são carregados no Apps

Normalmente, o banco de dados leva aproximadamente 5 GB e um aplicativo complexo típico consome cerca de 15 Mb.

AI Center

Objectstore/Filestore

  • Pacotes de ML

  • Conjuntos de dados para análise

  • Pipelines de treinamento

Uma instalação típica e estabelecida consumirá 8 GB para cinco pacotes e 1 GB adicionais para os conjuntos de dados.

Um pipeline pode consumir um adicional de 50 GB de armazenamento em bloco, mas apenas quando estiver em execução ativa.

Document Understanding

Armazenamento de objeto

  • Modelo de ML

  • Modelo OCR

  • Documentos armazenados

Em uma implantação madura, 12 GB irão para o modelo ML, 17 GB para o OCR e 50 GB para todos os documentos armazenados.

Automation Suite Robots

Armazenamento de arquivos

  • Armazenar em cache os pacotes necessários para executar uma automação

Normalmente, uma empresa madura implanta cerca de 10 GB de pacotes.

Process Mining

Armazenamento de objeto

  • Arquivos SQL que são necessários para executar consultas no SQL warehouse

O espaço mínimo é usado apenas para armazenar os arquivos SQL. aproximadamente um GB de armazenamento deve ser suficiente no início.

Armazenamento de objeto

O Automation Suite suporta os seguintes objetos:

  • Armazenamento de Blobs do Azure
  • Armazenamento do AWS S3
  • Objectstore compatível com S3. A OpenShift fornece o OpenShift Data Foundation, um objectstore baseado em Ceph e compatível com S3. Para instalar o OpenShift Data Foundation, consulte Introdução ao OpenShift Data Foundation.

Configuração do OpenShift Data Foundation

  1. Para criar um bucket de objectstore no OpenShift Data Foundation (ODF), você deve criar um ObjectBucketClaim para cada bucket, correspondendo a cada produto que você planeja instalar.

    Importante:

    Ao usar o ODF como o armazenamento de objetos em versões do cluster OpenShift anteriores à 4.19, o CORS não pode ser configurado. Essa limitação pode impedir que os serviços funcionem corretamente com buckets ODF. Para garantir a compatibilidade, defina "disable_presigned_url": true em seu arquivo input.json .

    Se você encontrar um erro ao aplicar essa configuração, consulte a seção Solução de problemas .

    O exemplo a seguir mostra um ObjectBucketClaim válido :

    Observação:

    A configuração que fornecemos no exemplo é necessária apenas se você criar os buckets no OpenShift Data Foundation.

    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: BUCKET_NAME
      namespace: <uipath>
    spec:
      bucketName: BUCKET_NAME
      storageClassName: openshift-storage.noobaa.io
    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: BUCKET_NAME
      namespace: <uipath>
    spec:
      bucketName: BUCKET_NAME
      storageClassName: openshift-storage.noobaa.io
    
  2. A aplicação do manifesto cria um segredo chamado BUCKET_NAME no namespace. <uipath> O segredo contém o access_key e o secret_key para esse bucket. Para consultar o access_key e o secret_key, execute o seguinte comando:

    oc get secret BUCKET_NAME -n <uipath> -o jsonpath={.data.AWS_ACCESS_KEY_ID} | base64 -d; echo
    oc get secret BUCKET_NAME -n <uipath> -o jsonpath={.data.AWS_SECRET_ACCESS_KEY} | base64 -d; echo
    oc get secret BUCKET_NAME -n <uipath> -o jsonpath={.data.AWS_ACCESS_KEY_ID} | base64 -d; echo
    oc get secret BUCKET_NAME -n <uipath> -o jsonpath={.data.AWS_SECRET_ACCESS_KEY} | base64 -d; echo
    
  3. Para encontrar o host ou FQDN para acessar o bucket, execute o seguinte comando:

    oc get routes s3 -o jsonpath={.spec.host} -n openshift-storage; echo
    oc get routes s3 -o jsonpath={.spec.host} -n openshift-storage; echo
    
Importante:

O ODF inclui uma implantação do NooBaa com limites predefinidos de CPU e memória. Esses limites podem se tornar um gargalo para o Automation Suite e resultar em problemas de limite de solicitações do S3. Para mitigar esse risco, você deve configurar o ODF com limites mais altos de CPU e memória para a implantação do NooBaa. Para obter detalhes, consulte a seção Solução de problemas .

Configuração da política CORS

Além disso, você pode ter que habilitar a seguinte política do CORS no nível da conta/bucket de armazenamento se encontrar qualquer erro relacionado ao CORS durante a conexão do S3 ao usar o cluster do Automation Suite .

Certifique-se de substituir {{fqdn}} pelo FQDN do cluster do Automation Suite na seguinte política do CORS.

O exemplo a seguir mostra a política do CORS no formato JSON:

JSON

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "POST",
            "GET",
            "HEAD",
            "DELETE",
            "PUT"
        ],
        "AllowedOrigins": [
            "https://{{fqdn}}"
        ],
        "ExposeHeaders": [
            "etag",
            "x-amz-server-side-encryption",
            "x-amz-request-id",
            "x-amz-id-2"
        ],
        "MaxAgeSeconds": 3000
    }
]
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "POST",
            "GET",
            "HEAD",
            "DELETE",
            "PUT"
        ],
        "AllowedOrigins": [
            "https://{{fqdn}}"
        ],
        "ExposeHeaders": [
            "etag",
            "x-amz-server-side-encryption",
            "x-amz-request-id",
            "x-amz-id-2"
        ],
        "MaxAgeSeconds": 3000
    }
]

O exemplo a seguir mostra a política do CORS no formato XML:

XML

<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>{{fqdn}}</AllowedOrigin>
   <AllowedMethod>HEAD</AllowedMethod>
   <AllowedMethod>GET</AllowedMethod>
   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
  <MaxAgeSeconds>3000</MaxAgeSeconds>
  <ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
  <ExposeHeader>x-amz-request-id</ExposeHeader>
  <ExposeHeader>x-amz-id-2</ExposeHeader>
  <ExposeHeader>etag</ExposeHeader>
 </CORSRule>
</CORSConfiguration>
<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>{{fqdn}}</AllowedOrigin>
   <AllowedMethod>HEAD</AllowedMethod>
   <AllowedMethod>GET</AllowedMethod>
   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
  <MaxAgeSeconds>3000</MaxAgeSeconds>
  <ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
  <ExposeHeader>x-amz-request-id</ExposeHeader>
  <ExposeHeader>x-amz-id-2</ExposeHeader>
  <ExposeHeader>etag</ExposeHeader>
 </CORSRule>
</CORSConfiguration>

Configuração

Para configurar o objectstore, consulte Configuração do Objectstore externo.

O instalador do Automation Suite oferece suporte à criação de contêineres/buckets se você fornecer permissões make . Ou então, você pode provisionar os contêineres/buckets necessários antes da instalação e suas informações para o instalador.

Requisitos de armazenamento

  • Objectstore: 500 GB

O tamanho do objectstore depende do tamanho da automação implantada e em execução. Portanto, pode ser um desafio fornecer uma estimativa precisa do objectstore inicialmente durante a instalação. Você pode começar com um tamanho de objectstore de 350 GB a 500 GB. Para entender o uso do objectstore, consulte Estimativa de armazenamento para cada componente do Automation Suite.

Observação:
  • À medida que sua automação escala, você pode precisar considerar o aumento no tamanho de seu objectstore.
  • Se você usar buckets criados no OpenShift Data Foundation, deverá provisionar explicitamente os buckets e fornecer os detalhes para cada produto no arquivo input.json . Para obter mais informações sobre como fornecer informações do bucket explicitamente no arquivo input.json , consulte a seção Configuração específica do produto .

Armazenamento de blocos

O armazenamento em bloco deve ter drivers CSI configurados com as classes de armazenamento do Kubernetes.

A tabela a seguir fornece detalhes do armazenamento de blocos, classe de armazenamento e provisionador:

Nuvem/KubernetesArmazenamentoClasseDeArmazenamentoProvisionador
AWSVolumes de EBSebs-scebs.csi.aws.com
AzureDisco de gerenciamento do Azuremanaged-premium Disco LRS Premiumdisk.csi.azure.com
OpenShiftOpenShift Data Foundationocs-storagecluster-ceph-rbdopenshift-storage.rbd.csi.ceph.com
Observação:

Não é obrigatório que você use as soluções de armazenamento mencionadas nesta seção. Se você usar uma solução de armazenamento diferente, deverá usar o StorageClass correspondente que seu fornecedor de armazenamento fornecer.

Configuração

Você pode seguir o guia oficial da Red Hat para criar uma classe de armazenamento em seu cluster do OpenShift.

Você deve passar o nome da classe de armazenamento que você criou para seu cluster para o parâmetro storage_class no arquivo input.json .

Observação:
  • No OpenShift, os drivers CSI são instalados automaticamente e a classe de armazenamento é criada durante a instalação do OpenShift Data Foundation. Se essas classes de armazenamento não estiverem configuradas, você deve configurá-las antes da instalação do Automation Suite.
  • Você deve tornar a classe de armazenamento para o armazenamento de blocos a padrão, conforme mostrado no exemplo a seguir.
Exemplo

O seguinte exemplo mostra como configurar a classe de armazenamento e como fornecê-la ao arquivo input.json durante a instalação:

Configuraçãoinput.jsonClasseDeArmazenamento
Azure
{
  "storage_class": "managed_premium"
}
{
  "storage_class": "managed_premium"
}

allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  creationTimestamp: "2023-06-15T09:34:17Z"
  labels:
    addonmanager.kubernetes.io/mode: EnsureExists
    kubernetes.io/cluster-service: "true"
    storageclass.kubernetes.io/is-default-class: "true"
  name: managed-premium
parameters:
  cachingmode: ReadOnly
  kind: Managed
  storageaccounttype: Premium_LRS
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
        

allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  creationTimestamp: "2023-06-15T09:34:17Z"
  labels:
    addonmanager.kubernetes.io/mode: EnsureExists
    kubernetes.io/cluster-service: "true"
    storageclass.kubernetes.io/is-default-class: "true"
  name: managed-premium
parameters:
  cachingmode: ReadOnly
  kind: Managed
  storageaccounttype: Premium_LRS
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
        
AWS
{
  "storage_class": "ebs-sc"
}
{
  "storage_class": "ebs-sc"
}

allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ebs-sc
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: ebs.csi.aws.com
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
        

allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ebs-sc
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: ebs.csi.aws.com
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
        
OpenShift
{
  "storage_class": "ocs-storagecluster-ceph-rbd"
}
{
  "storage_class": "ocs-storagecluster-ceph-rbd"
}

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: ocs-storagecluster-ceph-rbd
  annotations:
    description: "Provides RWO Filesystem volumes, and RWO and RWX Block volumes"
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: openshift-storage.rbd.csi.ceph.com
parameters:
  csi.storage.k8s.io/fstype: ext4
  csi.storage.k8s.io/provisioner-secret-namespace: openshift-storage
  csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner
  csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node
  csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner
  csi.storage.k8s.io/controller-expand-secret-namespace: openshift-storage
  pool: ocs-storagecluster-cephblockpool
  csi.storage.k8s.io/node-stage-secret-namespace: openshift-storage
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: Immediate
        

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: ocs-storagecluster-ceph-rbd
  annotations:
    description: "Provides RWO Filesystem volumes, and RWO and RWX Block volumes"
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: openshift-storage.rbd.csi.ceph.com
parameters:
  csi.storage.k8s.io/fstype: ext4
  csi.storage.k8s.io/provisioner-secret-namespace: openshift-storage
  csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner
  csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node
  csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner
  csi.storage.k8s.io/controller-expand-secret-namespace: openshift-storage
  pool: ocs-storagecluster-cephblockpool
  csi.storage.k8s.io/node-stage-secret-namespace: openshift-storage
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: Immediate
        

Requisitos de armazenamento

  • Armazenamento em bloco: 50 GB

O tamanho do armazenamento de blocos depende do tamanho da automação implantada e em execução. Portanto, pode ser difícil fornecer uma estimativa precisa inicialmente durante a instalação. Você pode começar com um tamanho de armazenamento em bloco de 50 GB. Para entender o uso do armazenamento de blocos, consulte Estimativa de armazenamento para cada componente do Automation Suite.

Observação:

À medida que sua automação escala, pode ser necessário levar em consideração o aumento no tamanho do armazenamento de blocos.

Armazenamento de arquivos

O armazenamento de arquivos deve ter drivers CSI configurados com as classes de armazenamento do Kubernetes.

O armazenamento de arquivos é necessário para os componentes que não requerem qualquer replicação. No entanto, se você não tiver um sistema de arquivos, poderá substituir o armazenamento de arquivos pelo armazenamento em blocos.

A tabela a seguir descreve as opções de armazenamento de arquivos disponíveis.

Nuvem/KubernetesArmazenamentoClasseDeArmazenamentoProvisionador
AWSEFSefs-scefs.csi.aws.com
AzureArquivos do Azureazurefile-csi-premiumfile.csi.azure.com
OpenShiftOpenShift Data Foundationocs-storagecluster-cephfsopenshift-storage.cephfs.csi.ceph.com

Use a classe de armazenamento azurefile-csi-premium para o Studio Web no AKS. É recomendável configurar o ZRS (ou replicação) para o armazenamento do Studio Web para garantir alta disponibilidade.

Observação:

Não é obrigatório que você use as soluções de armazenamento mencionadas nesta seção. Se você usar uma solução de armazenamento diferente, deverá usar o StorageClass correspondente que seu fornecedor de armazenamento fornecer.

Configuração

Você pode seguir o guia oficial da Red Hat para criar uma classe de armazenamento em seu cluster do OpenShift.

Você deve passar o nome da classe de armazenamento que você criou para seu cluster para o parâmetro storage_class_single_replica no arquivo input.json .

Observação:

No OpenShift, os drivers CSI são instalados automaticamente e a classe de armazenamento é criada durante a instalação do OpenShift Data Foundation. Se a classe de armazenamento não estiver configurada, você deve configurá-la antes da instalação do Automation Suite.

Exemplo

O exemplo a seguir mostra como configurar a classe de armazenamento e como fornecê-la a input.json durante a instalação:

Configuração

input.json

StorageClass

Azure

{
  "storage_class_single_replica": "azurefile-csi-premium"
}
{
  "storage_class_single_replica": "azurefile-csi-premium"
}
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  labels:
    addonmanager.kubernetes.io/mode: EnsureExists
    kubernetes.io/cluster-service: "true"
  name: azurefile-csi
mountOptions:
- mfsymlinks
- actimeo=30
- nosharesock
- dir_mode=0700
- file_mode=0700
- uid=1000
- gid=1000
- nobrl
- cache=none
parameters:
  skuName: Standard_LRS
provisioner: file.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  labels:
    addonmanager.kubernetes.io/mode: EnsureExists
    kubernetes.io/cluster-service: "true"
  name: azurefile-csi
mountOptions:
- mfsymlinks
- actimeo=30
- nosharesock
- dir_mode=0700
- file_mode=0700
- uid=1000
- gid=1000
- nobrl
- cache=none
parameters:
  skuName: Standard_LRS
provisioner: file.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: Immediate

AWS

{
  "storage_class_single_replica": "efs-sc"
}
{
  "storage_class_single_replica": "efs-sc"
}
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: efs-sc
parameters:
  basePath: /dynamic_provisioning
  directoryPerms: "700"
  fileSystemId: $(EFS_ID)
  gidRangeEnd: "2000"
  gidRangeStart: "1000"
  provisioningMode: efs-ap
provisioner: efs.csi.aws.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: efs-sc
parameters:
  basePath: /dynamic_provisioning
  directoryPerms: "700"
  fileSystemId: $(EFS_ID)
  gidRangeEnd: "2000"
  gidRangeStart: "1000"
  provisioningMode: efs-ap
provisioner: efs.csi.aws.com
reclaimPolicy: Delete
volumeBindingMode: Immediate

Substitua $(EFS_ID) pelo ID do compartilhamento de arquivos real que você criou ao provisionar a infraestrutura.

OpenShift

{
  "storage_class_single_replica": "ocs-storagecluster-cephfs"
}
{
  "storage_class_single_replica": "ocs-storagecluster-cephfs"
}
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: ocs-storagecluster-cephfs
  annotations:
    description: Provides RWO and RWX Filesystem volumes
provisioner: openshift-storage.cephfs.csi.ceph.com
parameters:
  clusterID: openshift-storage
  csi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisioner
  csi.storage.k8s.io/controller-expand-secret-namespace: openshift-storage
  csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
  csi.storage.k8s.io/node-stage-secret-namespace: openshift-storage
  csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
  csi.storage.k8s.io/provisioner-secret-namespace: openshift-storage
  fsName: ocs-storagecluster-cephfilesystem
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: Immediate
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: ocs-storagecluster-cephfs
  annotations:
    description: Provides RWO and RWX Filesystem volumes
provisioner: openshift-storage.cephfs.csi.ceph.com
parameters:
  clusterID: openshift-storage
  csi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisioner
  csi.storage.k8s.io/controller-expand-secret-namespace: openshift-storage
  csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
  csi.storage.k8s.io/node-stage-secret-namespace: openshift-storage
  csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
  csi.storage.k8s.io/provisioner-secret-namespace: openshift-storage
  fsName: ocs-storagecluster-cephfilesystem
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: Immediate
Observação:

A classe de armazenamento para o compartilhamento de arquivos deve ter as permissões necessárias definidas como 700 para o diretório e arquivos.

Além disso, UID e GID devem ser definidos como 1000 no Azure, e gidRangeStart e gidRangeEnd como 1000 e 2000, respectivamente, na AWS.

Requisitos de armazenamento

ArmazenamentoRequisito
Armazenamento de arquivos510 GB

O tamanho do armazenamento de arquivos depende do tamanho da automação implantada e em execução. Portanto, pode ser um desafio fornecer uma estimativa real inicialmente, durante a instalação. No entanto, você deve esperar que aproximadamente 510 GB de armazenamento sejam suficientes para executar dez pipelines de treinamento simultâneos e para o Automation Suite Robots. Para entender o uso do filestore, consulte Estimativa de armazenamento para cada componente do Automation Suite.

Observação:

À medida que sua automação escala, talvez você precise considerar um aumento no tamanho do seu armazenamento de arquivos.

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