- Información general
- Requisitos
- Preinstalación
- Preparar la instalación
- Descarga de los paquetes de instalación
- Configurar el registro compatible con OCI
- Conceder permisos de instalación con roles de clúster
- Conceder permisos de instalación sin roles de clúster
- Instalar y configurar la malla de servicio
- Instalar y configurar la herramienta GitOps
- Instalar el operador de secretos externos
- Implementar Redis a través de OperatorHub
- Aplicar configuraciones varias
- Ejecutar uipathctl
- Instalación
- Después de la instalación
- Migración y actualización
- Supervisión y alertas
- Administración de clústeres
- Configuración específica del producto
- Configuración avanzada de Orchestrator
- Configurar parámetros de Orchestrator
- Configurar AppSettings
- Configurar el tamaño máximo de la solicitud
- Anular la configuración de almacenamiento a nivel de clúster
- Configurar NLog
- Guardar los registros del robot en Elasticsearch
- Configurar almacenes de credenciales
- Configurar clave de cifrado por tenant
- Limpiar la base de datos de Orchestrator
- Omitir la instalación de la biblioteca de host
- Ai Trust Layer
- Solución de problemas
- Cómo desinstalar Automation Suite
- Cómo resolver el fallo de comprobación de conectividad prerrequisito en OpenShift 4.16–4.18
- Cómo implementar Insights en un clúster habilitado para FIPS
- Cómo deshabilitar la habilitación automática de CDI en el operador de GPU de Nvidia
- Cómo codificar la URL de una contraseña de cadena de conexión de PostgreSQL
- 500 errores y limitación de tasa en solicitudes S3 en ODF
- Solución de problemas de secretos externos
- Configurar las tolerancias del controlador CSI para ODF 4.20
- Solución de problemas de Temporal como servicio
- Los pods de AI Center y Document Understanding no se inician con la verificación del certificado TLS habilitada
- Studio Desktop no puede cargar conectores y actividades de Integration Service
- Errores de validación del certificado TLS
- Mitigación manual de Política de red de ArgoCD (GHSA-47m3-95c7-g2g8)
- Configurar solicitudes de recursos y límites para cargas de trabajo creadas por uipathctl
Clúster y nodos de Kubernetes
Requisitos del clúster y nodo de Kubernetes para Automation Suite en OpenShift.
Clúster y permisos
Puedes traer tu propio clúster de Kubernetes y seguir tus prácticas estándar para aprovisionarlo y gestionarlo.
Un usuario administrador debe instalar los componentes específicos necesarios por separado, antes de la instalación de la plataforma de Automation Suite. Después de instalar los componentes necesarios, puedes ejecutar el instalador. Para obtener la lista de permisos necesarios, consulta Conceder permisos de instalación.
Capacidad de nodo
Para estimar la capacidad del nodo en función de tu producto y los requisitos de escala, utiliza la Calculadora de tamaño de instalación de UiPath Automation Suite.
El requisito de volumen raíz para los nodos agente (trabajador) es de 256 GB.
Como mínimo, para comenzar con los servicios obligatorios de la plataforma (identidad, licencias y enrutamiento) y Orchestrator, debes aprovisionar 8 vCPU y 16 GB de RAM por nodo.
No recomendamos utilizar instancias puntuales en Automation Suite en escenarios de producción, debido a problemas de estabilidad y rendimiento.
Ajuste de escala automático
Recomendamos habilitar el escalado automático en el clúster para garantizar una alta fiabilidad y evitar interrupciones comerciales.
Requisitos adicionales de Automation Suite Robots
Automation Suite Robot requieren nodos de trabajo adicionales.
Los requisitos de hardware para el nodo Robots de Automation Suite dependen de la forma en que planees utilizar tus recursos. Además de los requisitos adicionales del nodo agente, también necesitas un mínimo de 10 GB de almacenamiento de archivos para habilitar el almacenamiento en caché de paquetes.
Para obtener más información, consulta Documentación de almacenamiento .
Las siguientes secciones describen los factores que afectan la cantidad de hardware que requiere el nodo de Automation Suite Robots.
Tamaño del robot
La siguiente tabla describe la CPU, la RAM y el almacenamiento necesarios para todos los tamaños de robot.
| Tamaño | CPU | RAM | Almacenamiento |
|---|---|---|---|
| Pequeño | 0.5 | 1 GB | 1 GB |
| Estándar | 1 | 2 GB | 2 GB |
| Medio | 2 | 4 GB | 4 GB |
| Grande | 6 | 10 GB | 10 GB |
Tamaño del nodo del agente
Los recursos del nodo agente de Automation Suite Robots tienen un impacto en el número de trabajos que se pueden ejecutar simultáneamente. La razón es que el número de núcleos de CPU y la cantidad de capacidad de RAM se dividen por los requisitos de CPU/RAM del trabajo.
Por ejemplo, un nodo con 16 CPU y 32 GB de RAM podría ejecutar cualquiera de las siguientes opciones:
- 32 Pequeños trabajos
- 16 trabajos estándar
- 8 trabajos medios
- 2 trabajos grandes
Los tamaños de trabajo pueden combinarse, por lo que, en cualquier momento, el mismo nodo podría ejecutar una combinación de trabajos como el siguiente:
- 10 trabajos pequeños (que consumen 5 CPU y 10 GB de RAM)
- 4 trabajos estándar (que consumen 4 CPU y 8 GB de RAM)
- 3 trabajos medianos (que consumen 6 CPU y 12 GB de RAM)
Consumo de recursos de Kubernetes
Dado que el nodo forma parte de un clúster de Kubernetes, el agente de Kubernetes presente en el servidor (kubelet) consume una pequeña cantidad de recursos. Según nuestras mediciones, el kubelet consume los siguientes recursos:
- 0,6 CPU
- 0,4 GB de RAM
Un nodo similar al descrito anteriormente tendría aproximadamente 15.4 CPU y 31.6 GB de RAM.
Selección automática del tamaño de la máquina
Todos sus procesos multiplataforma tienen la opción Robots de Automation Suite establecida como Automático de forma predeterminada. Este ajuste selecciona el tamaño de máquina adecuado para ejecutar el proceso usando robots sin servidor.
Al elegir automáticamente el tamaño, los criterios enumerados en la siguiente tabla se evalúan en orden. Tan pronto como se satisface un criterio, se elige el tamaño de máquina correspondiente y los criterios restantes no se evalúan.
| Orden | Criterio | Tamaño de la máquina |
|---|---|---|
| 1 | Trabajo de depuración remota | Medio |
| 2 | El proceso depende de la automatización de IU O el proceso depende de las actividades de UiPath Document Understanding | Estándar |
| 3 | Otro proceso desatendido | Pequeño |
Recomendaciones adicionales de Document Understanding
Para aumentar el rendimiento, puedes instalar Document Understanding en un nodo agente adicional compatible con GPU. Sin embargo, ten en cuenta que los proyectos basados en AI Center en Document Understanding son totalmente funcionales sin el nodo GPU. En realidad, Document Understanding utiliza máquinas virtuales de CPU para todas sus tareas de extracción y clasificación, mientras que para OCR recomendamos encarecidamente el uso de una máquina virtual de GPU.
Para obtener más información sobre el uso de CPU/GPU dentro del marco de Document Understanding, consulta Uso de CPU y GPU.
Si quieres utilizar un nodo adicional compatible con GPU, debes cumplir los siguientes requisitos:
| Hardware | Requisitos mínimos |
|---|---|
| Procesador | 8 (v)CPU/núcleos |
| RAM | 52 GB |
| Disco del sistema operativo | 256 GB SSD Mínimo IOPS: 1100 |
| DiscoDeDatos | N/D |
| RAM de GPU | 11 GB |
Al añadir el grupo de nodos de la GPU, modifica los nodos con --node-taints nvidia.com/gpu=present:NoSchedule. Las cargas de trabajo de GPU de Automation Suite están configuradas para tolerar solo la clave de taint nvidia.com/gpu, por lo que debes utilizar exactamente esta clave. Si contaminas los nodos con una clave diferente, el programador no puede colocar los pods de GPU en el nodo y permanecen sin programar.
Para garantizar la programación adecuada de las cargas de trabajo de la GPU, asegúrate de que tu configuración YAML de DaemonSet (NFD o Nvidia GPU Operador) incluya un bloque tolerations coincidente.
Puedes utilizar el siguiente ejemplo:
tolerations:
- key: "nvidia.com/gpu"
operator: "Equal"
value: "present"
effect: "NoSchedule"
tolerations:
- key: "nvidia.com/gpu"
operator: "Equal"
value: "present"
effect: "NoSchedule"
Automation Suite es compatible con las GPU NVIDIA. Para obtener más información sobre cómo configurar las GPU NVIDIA (como los controladores), consulta la documentación de OpenShift.
Documento adicional Comprender los requisitos de los proyectos modernos
Con la inferencia de CPU activada, se requiere un mínimo de 2 GPU.
Para habilitar la inferencia de la CPU, establece la propiedad enable_cpu_inference en true, como se indica en la sección Habilitar o deshabilitar Document Understanding .
La inferencia puede ser hasta 10 veces más lenta. Recomendamos utilizarlo para documentos con un máximo de 125 páginas, ya que la inferencia puede fallar para documentos más grandes.
Sin la inferencia de la CPU, se requiere un mínimo de 5 GPU para los proyectos modernos de Document Understanding. El escenario de ejemplo de la siguiente tabla demuestra cómo 5 GPU son suficientes para procesar 300 páginas.
Para los proyectos modernos de Document Understanding, la GPU mínima recomendada es NVIDIA T4.
| Función | Número |
|---|---|
| Páginas de modelo personalizadas procesadas por hora | 300 |
| Páginas de modelo listas para usar procesadas por hora | 0 |
| Entrenamiento de modelos en paralelo | 1 |
| Número de páginas en todos los proyectos: tiempo de diseño | 200 |
| Número de tipos de documentos por versión del proyecto | 3 |
Las 5 GPU se distribuyen entre diferentes funciones, como se detalla en la siguiente tabla:
| Servicio | Número de GPU |
|---|---|
| Réplicas de OCR | 1 |
| Réplicas de entrenamiento de modelos personalizados | 1 |
| Réplicas de modelos personalizados | 2 |
| Réplicas de modelos listas para usar | 1 |
| Total | 5 |
Además de las demandas de la GPU, los proyectos modernos de Document Understanding también requieren recursos específicos de la CPU para un rendimiento óptimo. Para un rendimiento óptimo, se requiere un mínimo de 18 vCPU .
Con el proyecto moderno de Document Understanding, se requieren 4 TB adicionales de objectstore para realizar las actividades de los ejemplos proporcionados de forma continua durante un año. Puedes comenzar con un número más pequeño, pero la actividad fallará una vez que se complete el almacenamiento, a menos que la escales explícitamente.
Si estás aprovisionando un año de procesamiento continuo, necesitarás 4 TB para los proyectos modernos de Document Understanding y 512 GB para los demás productos. El total será de 4,5 TB de almacenamiento. Del mismo modo, si comienzas con seis meses de procesamiento, necesitarás 2 TB para los proyectos modernos de Document Understanding y 512 GB para los demás productos. En este caso, el total será de 2,5 TB.
Para obtener cálculos más detallados y la capacidad necesaria para tus necesidades, consulta la Calculadora de tamaño de instalación de UiPath Automation Suite.
Aprovisionamiento de GPU habilitadas para MIG
Las cargas de trabajo de Automation Suite Document Understanding admiten la ejecución en GPU virtuales (VGPU) creadas con la tecnología NVIDIA MIG (GPU de instancias múltiples).
Para ejecutar Document Understanding en estas condiciones, ten en cuenta los siguientes requisitos:
- Memoria de la GPU (VRAM): al menos 16 GB por VGPU. UiPath solo admite la estrategia única, lo que significa que todas las VGPU serán exactamente iguales.
- Almacenamiento: al menos 80 GB por VGPU
Habilitar GPU habilitadas para MIG en Kubernetes
Después de aprovisionar las GPU habilitadas para MIG en tu clúster con perfiles que coincidan o superen los requisitos mínimos anteriores, asegúrate de que las GPU sean Kubernetes programables. El nodo debe informar de un número de GPU distinto de cero antes de que se puedan programar cargas de trabajo en él.
Para hacer que las GPU sean programables, tienes dos opciones:
- Opción A: sigue la documentación oficial de configuración de la GPU de tu proveedor de la nube, o la del sitio web de NVIDIA:
- Documentación de NVIDIA: compatibilidad con MIG en la plataforma de contenedores OpenShift
- Documentación de IBM Developer: Implementar NVIDIA MIG en Red Hat OpenShift
- Opción B (alternativa): implementa el complemento del dispositivo NVIDIA directamente:
- Crea un nuevo espacio de nombres:
kubectl create namespace gpu-resourceskubectl create namespace gpu-resources - Aplica la siguiente configuración, reemplazando
migEnabledPoolNamepor la etiqueta que coincida con tu nodo de GPU:apiVersion: v1 kind: Pod metadata: name: nvidia-device-plugin-pod namespace: gpu-resources spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: agentpool operator: In values: # To be changed to a selector that matches the GPU nodes - migEnabledPoolName containers: - args: - --fail-on-init-error=false env: - name: MPS_ROOT value: /run/nvidia/mps - name: MIG_STRATEGY # We only support the single strategy for now value: single - name: NVIDIA_MIG_MONITOR_DEVICES value: all - name: NVIDIA_VISIBLE_DEVICES value: all - name: NVIDIA_DRIVER_CAPABILITIES value: compute,utility image: nvcr.io/nvidia/k8s-device-plugin:v0.17.3 imagePullPolicy: IfNotPresent name: nvidia-device-plugin-ctr securityContext: allowPrivilegeEscalation: true capabilities: add: - SYS_ADMIN terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /var/lib/kubelet/device-plugins name: device-plugin tolerations: - key: CriticalAddonsOnly operator: Exists - effect: NoSchedule key: nvidia.com/gpu operator: Exists terminationGracePeriodSeconds: 30 volumes: - hostPath: path: /var/lib/kubelet/device-plugins type: "" name: device-pluginapiVersion: v1 kind: Pod metadata: name: nvidia-device-plugin-pod namespace: gpu-resources spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: agentpool operator: In values: # To be changed to a selector that matches the GPU nodes - migEnabledPoolName containers: - args: - --fail-on-init-error=false env: - name: MPS_ROOT value: /run/nvidia/mps - name: MIG_STRATEGY # We only support the single strategy for now value: single - name: NVIDIA_MIG_MONITOR_DEVICES value: all - name: NVIDIA_VISIBLE_DEVICES value: all - name: NVIDIA_DRIVER_CAPABILITIES value: compute,utility image: nvcr.io/nvidia/k8s-device-plugin:v0.17.3 imagePullPolicy: IfNotPresent name: nvidia-device-plugin-ctr securityContext: allowPrivilegeEscalation: true capabilities: add: - SYS_ADMIN terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /var/lib/kubelet/device-plugins name: device-plugin tolerations: - key: CriticalAddonsOnly operator: Exists - effect: NoSchedule key: nvidia.com/gpu operator: Exists terminationGracePeriodSeconds: 30 volumes: - hostPath: path: /var/lib/kubelet/device-plugins type: "" name: device-plugin
- Crea un nuevo espacio de nombres:
Después de implementar el complemento, la sección Asignable del nodo debe mostrar el número correcto de VGPU en nvidia.com/gpu, en función del perfil MIG que hayas configurado. El nodo debería ser ahora programable y estar listo para ejecutar cargas de trabajo de Document Understanding.
Requisitos adicionales de Temporal como servicio (TaaS)
Cuando Maestro está habilitado, TaaS se ejecuta como un conjunto de implementaciones de Kubernetes dentro del clúster. En el perfil predeterminado, TaaS requiere un mínimo de 5,5 núcleos virtuales y 5,5 GB de RAM de espacio libre en el clúster.
Implementaciones
TaaS consta de las siguientes implementaciones de Kubernetes, cada una responsable de una función distinta dentro del servicio temporal:
| Implementación | Descripción |
|---|---|
taas-temporal-frontend | Punto de entrada para todas las conexiones de cliente al servicio temporal |
taas-temporal-internalFrontend | Gestiona la comunicación interna entre servicios dentro del clúster |
taas-temporal-history | Gestiona el historial de ejecución del flujo de trabajo y las transiciones de estado |
taas-temporal-matching | Hace coincidir las tareas programadas con los trabajadores disponibles para su ejecución |
taas-temporal-worker | Procesa flujos de trabajo internos del sistema temporal |
taas-temporal-web | IU web para visualizar y supervisar flujos de trabajo |
taas-temporal-admintools | Implementación de la utilidad para emitir comandos de administración temporal dentro del clúster |
Requisitos de recursos de pod
La siguiente tabla enumera las solicitudes y límites de CPU y memoria para cada implementación de TaaS. La configuración de los recursos es la misma en todos los perfiles de TaaS.
| Implementación | Solicitud de CPU | Límite de CPU | Solicitud de memoria | Límite de memoria |
|---|---|---|---|---|
taas-temporal-frontend | 250m | 1 | 256Mi | 256Mi |
taas-temporal-internalFrontend | 250m | 1 | 256Mi | 256Mi |
taas-temporal-history | 250m | 1 | 4Gi | 4Gi |
taas-temporal-matching | 250m | 1 | 512Mi | 512Mi |
taas-temporal-worker | 100m | 1 | 256Mi | 256Mi |
taas-temporal-web | 100m | 200 m | 128Mi | 128Mi |
taas-temporal-admintools | 100m | 200 m | 128Mi | 128Mi |
Ajuste de escala automático
TaaS utiliza el Autoescalado de pod horizontal (HPA) para implementaciones seleccionadas. El comportamiento de escalado depende del perfil de TaaS, como se describe en la siguiente tabla.
| Predeterminado | Lite | HA | |
|---|---|---|---|
| Autoescalado habilitado | No | Sí | Sí |
| HPA creados | 0 | 4 | 4 |
taas-temporal-frontend Réplicas | 1 (estático) | 1–3 (CPU 80 %) | 2–3 (CPU 80 %) |
taas-temporal-internalFrontend Réplicas | 1 (estático) | 1–3 (CPU 80 %) | 2–3 (CPU 80 %) |
taas-temporal-history Réplicas | 1 (estático) | 1–5 (CPU 80 % + Mem 70 %) | 2-5 (CPU 80 % + Mem 70 %) |
taas-temporal-matching Réplicas | 1 (estático) | 1–3 (CPU 80 %) | 2–3 (CPU 80 %) |
taas-temporal-worker Réplicas | 1 (estático) | 1 (estático) | 2 (estático) |
taas-temporal-web Réplicas | 1 (estático) | 1 (estático) | 1 (estático) |
taas-temporal-admintools Réplicas | 1 (estático) | 1 (estático) | 1 (estático) |
| PDB | disabled | enabled | enabled |
| Número de fragmentos del historial | 64 | 128 | 256 |
Programación de nodos
Los taints de nodo y las etiquetas son necesarios para los robots de Automation Suite. Para Document Understanding, se recomiendan.
Ejemplo de AI Center y DU:
-
Para la CPU:
oc taint node <node_name> aic.ml/cpu=present:NoScheduleoc taint node <node_name> aic.ml/cpu=present:NoSchedule -
Para GPU:
oc taint node <node_name> nvidia.com/gpu=present:NoScheduleoc taint node <node_name> nvidia.com/gpu=present:NoSchedule
EjemploAutomation Suite Robot :
Debes configurar un nodo de trabajo dedicado con el taint y las etiquetas correctos para Automation Suite Robots. Sin estos, los pods de asrobots no se programan independientemente de los recursos disponibles en otros nodos.
Ejecuta los dos comandos siguientes: el taint por sí solo no es suficiente:
oc taint node <node_name> serverless.robot=present:NoSchedule
oc label node <node_name> serverless.robot=true serverless.daemon=true
oc taint node <node_name> serverless.robot=present:NoSchedule
oc label node <node_name> serverless.robot=true serverless.daemon=true
Si tienes corrupciones de nodo personalizadas que se aplican mediante la política de controlador de acceso, como roles específicos para nodos de trabajo o etiquetas, no se pasarán a Automation Suite y pueden interrumpir el proceso de instalación.
Para obtener más información sobre los taints y las tolerancias, consulta la documentación de Kubernetes.
Requisitos adicionales del modelo autoalojado
Los modelos autoalojados requieren hardware de GPU. Los requisitos mínimos dependen del tamaño del modelo:
| Tamaño del modelo | Configuración mínima de GPU |
|---|---|
| Parámetros 7B | 1 GPU de 80 GB |
| Parámetros 70B | 4 GPU de 80 GB |
| 120B+ parámetros | 8 GPU de 80 GB |
Para obtener más información, consulta Modelos autoalojados.
- Clúster y permisos
- Capacidad de nodo
- Ajuste de escala automático
- Requisitos adicionales de Automation Suite Robots
- Tamaño del robot
- Tamaño del nodo del agente
- Consumo de recursos de Kubernetes
- Selección automática del tamaño de la máquina
- Recomendaciones adicionales de Document Understanding
- Documento adicional Comprender los requisitos de los proyectos modernos
- Aprovisionamiento de GPU habilitadas para MIG
- Requisitos adicionales de Temporal como servicio (TaaS)
- Implementaciones
- Requisitos de recursos de pod
- Ajuste de escala automático
- Programación de nodos
- Requisitos adicionales del modelo autoalojado