A continuación, se describen el hardware y la infraestructura mínimos necesarios para ejecutar ArcGIS Enterprise en Kubernetes 10.9.1
Entornos compatibles
Los requisitos y las especificaciones del sistema se aplican en todos los entornos compatibles, mientras no se indique lo contrario. Para esta versión, se admiten los siguientes entornos:
- Centro de datos local
- Red Hat OpenShift Container Platform 4.6 - 4.8
- Servicios de Kubernetes administrados en la nube
- Amazon Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
- Microsoft Azure Kubernetes Service (AKS)
Registro de contenedor
Las imágenes de contenedor de ArcGIS Enterprise en Kubernetes son accesibles desde un repositorio de Docker Hub privado. Esri proporcionará acceso a este repositorio a aquellos que implementan ArcGIS Enterprise en Kubernetes.
Obtener licencias de Esri
Para autorizar su organización de ArcGIS Enterprise durante la implementación, necesita un archivo de licencia de tipo de usuario en formato JSON (archivo .json) y un archivo de licencia de servidor en formato ECP o PRVC (archivo .ecp o .prvc). Para obtener estos archivos de licencia, visite My Esri con privilegios para 'realizar una acción de licenciamiento y siga estos pasos:
- Inicie sesión en My Esri.
- Seleccione Mis organizaciones > Licencia.
- En Productos de Esri con licencia, haga clic en Iniciar.
- En Producto, seleccione ArcGIS Enterprise; en Versión, seleccione la versión de ArcGIS Enterprise apropiada; y, en la lista Tipo de licencia, siga los pasos para generar archivos de licencia para ArcGIS Server y Portal for ArcGIS, incluidos los roles de servidor, tipos de usuarios y aplicaciones, según corresponda.
Clúster de Kubernetes
Para implementar ArcGIS Enterprise en Kubernetes, debe tener un clúster de Kubernetes en uno de los entornos mencionados arriba. Para cada entorno compatible se admiten las versiones del clúster de Kubernetes siguientes.
Versión ArcGIS Enterprise en Kubernetes | Versión de clúster de Kubernetes compatible |
---|---|
10.9.1 | 1.19 - 1.21 |
Nota:
Al crear un clúster en GKE, debe usar el modo de operación estándar. El modo de piloto automático no es compatible.
Espacio de nombres
ArcGIS Enterprise en Kubernetes requiere su propio espacio de nombres dedicado. El espacio de nombres se debe crear antes de ejecutar el script de implementación. Cada implementación de ArcGIS Enterprise en Kubernetes requiere también un espacio de nombres dedicado.
CPU y memoria
ArcGIS Enterprise en Kubernetes se implementa con uno de los tres perfiles de arquitectura. Las recomendaciones para las solicitudes de recursos (CPU y memoria) y los límites y los requisitos de cálculo generales varían según el perfil seleccionado. A continuación, se proporcionan las recomendaciones para cada perfil.
A continuación, se indican los requisitos mínimos de nodo para cada perfil de arquitectura. Se recomienda que cada nodo de trabajador/agente tenga como mínimo 8 CPU y 32 GiB de memoria.
Perfil de arquitectura | Número mínimo de nodos trabajador/agente | CPU mínimas totales | GiB mínimos totales |
---|---|---|---|
Disponibilidad estándar | 3 | 24 | 96 |
Disponibilidad mejorada | 4 | 32 | 128 |
Desarrollo | 2 | 16 | 64 |
Nota:
ArcGIS Enterprise en Kubernetes solo se puede utilizar en las CPU que se ajusten a la arquitectura x86_64 (64 bits).
Los pods de la implementación de ArcGIS Enterprise en Kubernetes se distribuyen entre los nodos de trabajador del clúster. Al escalar la implementación o agregar otra implementación de ArcGIS Enterprise al clúster, debe provisionar hardware en consecuencia. Puede requerir un aumento en la cantidad máxima predeterminada de pods por nodo. El número de pods que se crean inicialmente varía según el perfil de arquitectura. A medida que escala horizontalmente o agrega nueva funcionalidad, el número de pods aumenta.
Nota:
ArcGIS Enterprise en Kubernetes no admite Windows Server imágenes de nodos en entornos de GKE.
Objeto Cuota de recursos
Los pods de ArcGIS Enterprise en Kubernetes tienen solicitudes y límites definidos de CPU y memoria. Si el espacio de nombre tiene un objeto ResourceQuota, la cuota debe ser superior a la suma de todas las solicitudes y límites de pods. Estos valores varían según el perfil de arquitectura seleccionado, como se describe a continuación.
Nota:
Si está efectuando una actualización a 10.9.1, primero debe actualizar los valores de la cuota de recursos en el espacio del nombre de acuerdo con los requisitos 10.9.1.
Se recomienda configurar al menos un 10 por ciento de recursos de solicitud para un funcionamiento correcto de los nodos de clúster.
Las siguientes recomendaciones de cuotas para cada perfil se basan en los apartados descritos anteriormente. Los valores de límite que se representan son marcadores de posición y se deben configurar en función de sus requisitos de escalabilidad.
Perfil de disponibilidad estándar:
spec:
hard:
limits.cpu: "128"
limits.memory: 228Gi
requests.cpu: "22"
requests.memory: 86Gi
Perfil de disponibilidad mejorada:
spec:
hard:
limits.cpu: "132"
limits.memory: 256Gi
requests.cpu: "28"
requests.memory: 108Gi
Perfil de desarrollo:
spec:
hard:
limits.cpu: "96"
limits.memory: 164Gi
requests.cpu: "14"
requests.memory: 72Gi
Seguridad
A continuación, se describen los requisitos de seguridad para ArcGIS Enterprise en Kubernetes.
Control de acceso basado en roles
El control de acceso basado en roles (RBAC) debe estar habilitado en el clúster de Kubernetes. Para implementar ArcGIS Enterprise en Kubernetes, no necesita privilegios de administrador de clúster. Si no tiene privilegios de administrador de clúster, el usuario debe tener los privilegios administrativos de espacio de nombres mínimos. Puede asignar defaultClusterRole admin al usuario creando un RoleBinding en el espacio de nombres.
Política de seguridad de pod (restricciones de contexto de seguridad en OpenShift) y memoria virtual
ArcGIS Enterprise en Kubernetes implementa Elasticsearch para admitir varias características de la organización de ArcGIS Enterprise. De forma predeterminada, Elasticsearch utiliza un directorio mmapfs para almacenar los índices requeridos. Los límites predeterminados del sistema operativo en los recuentos de mmap pueden ser insuficientes para la implementación. Elasticsearch recomienda un valor de vm.max_map_count predeterminado de 262144. Para cambiar el valor predeterminado, se requiere un privilegio elevado (raíz) en cada nodo.
Dependiendo de si su clúster de Kubernetes permite que los contenedores se ejecuten con privilegios o sin privilegios, se requieren las siguientes acciones.
- Ejecutar con privilegios: ArcGIS Enterprise en Kubernetes ejecuta un contenedor inicial con privilegios en el nodo que ejecuta Elasticsearch y no se necesita ninguna acción adicional.
- Ejecutar sin privilegios: si el clúster de Kubernetes tiene definida la seguridad de pod y no permite que los contenedores se ejecuten con privilegios, se aplican las siguientes opciones:
- Opción 1: el script de implementación de ArcGIS Enterprise en Kubernetes crea una cuenta de servicio bajo su espacio de nombres para ejecutar contenedores. La cuenta de servicio predeterminada es arcgis-admin-serviceaccount. Si el clúster incluye una política de seguridad de pod, debe permitir que la cuenta de servicio ejecute contenedores con privilegios. Para OpenShift, puede otorgar a esta cuenta de servicio acceso a las restricciones de contexto de seguridad con privilegios agregando lo siguiente en la sección del usuario:
“-system:serviceaccount: <Namespace>:arcgis-admin-serviceaccount"
- Opción 2: si no puede hacer que la cuenta de servicio se ejecute como contenedor con privilegios, debe preparar cada nodo manualmente ejecutando el siguiente comando como raíz:
sysctl -w vm.max_map_count=262144
- Opción 1: el script de implementación de ArcGIS Enterprise en Kubernetes crea una cuenta de servicio bajo su espacio de nombres para ejecutar contenedores. La cuenta de servicio predeterminada es arcgis-admin-serviceaccount. Si el clúster incluye una política de seguridad de pod, debe permitir que la cuenta de servicio ejecute contenedores con privilegios. Para OpenShift, puede otorgar a esta cuenta de servicio acceso a las restricciones de contexto de seguridad con privilegios agregando lo siguiente en la sección del usuario:
Si utiliza Kubernetes NetworkPolicies, asegúrese de que la comunicación entre pods y de pod a servicio sin interrupciones esté permitida en el espacio de nombres ArcGIS Enterprise.
Además, asegúrese de que los pods del espacio de nombres tengan acceso al servidor de API Kubernetes. El servidor API es accesible a través de un servicio llamado Kubernetes en el espacio de nombres predeterminado. Los pods de ArcGIS Enterprise utilizan el nombre de dominio totalmente calificado (FQDN) kubernetes.default.svc.cluster.local para realizar consultas en el servidor de la API.
Nota:
cluster.local es el dominio predeterminado del clúster.
Nota:
Se debe permitir que los pods del clúster se ejecuten con un FSGroup y SupplementalGroup un ID de 117932853.
Red
Entre los requisitos de red se incluyen un FQDN y un equilibrador de carga. A continuación se indican los detalles de cada uno de ellos.
Nombre de dominio totalmente calificado
ArcGIS Enterprise en Kubernetes requiere un FQDN (por ejemplo, map.company.com). Puede utilizar un sistema de nombres de dominio (DNS) existente para crear uno o utilizar un servicio DNS en la nube como Amazon Route 53. Puede crear el registro de DNS después de la implementación; no obstante, debe indicar su valor durante la implementación. En esta versión, el FQDN no se puede modificar después de la implementación.
Equilibrador de carga
Se requiere un equilibrador de carga para dirigir el tráfico a través de cada nodo trabajador. Al utilizar AKS o EKS, puede proporcionar los siguientes equilibradores de carga desde el script de implementación sin necesidad de configuración manual:
- Azure Load Balancer (público o interno): se pueden especificar en el script de implementación una dirección IP pública estática y una etiqueta DNS proporcionadas previamente.
- AWS Network Load Balancer (con conexión a Internet o interno): se pueden utilizar otros servicios de equilibrio de carga, pero se deben configurar manualmente con cada nodo del clúster.
En una OpenShift Container Platform, se pueden configurar rutas cuando se apunte al servicio del controlador de entrada.
Puede utilizar un equilibrador de carga administrado automáticamente que apunte a los nodos trabajadores en el NodePort del servicio del controlador de entrada. Para obtener más información, consulte la descripción del parámetro de la guía de implementación del equilibrador de carga.
Cuando utilice un balanceador de carga autogestionado o un proxy inverso como NGINX, especifique la siguiente conexión: proxy_set_header X-Forwarded-Host $host;. Este encabezado es necesario para garantizar que el tráfico se enrute correctamente a la URL de su organización ArcGIS Enterprise.
Almacenamiento del sistema
ArcGIS Enterprise en Kubernetes requiere volúmenes persistentes (PV) para el almacenamiento del sistema. Se pueden proporcionar como dinámicos o estáticos. Al crear PV de cualquiera de los dos tipos, puede utilizar tamaños personalizados (un tamaño mayor) y etiquetas. Las cargas de trabajo con estado de ArcGIS Enterprise incluyen sistemas de administración de bases de datos relacionales, así como bases de datos NoSQL. Se recomienda utilizar dispositivos de almacenamiento en bloques que proporcionen baja latencia, por ejemplo, volúmenes de EBS, discos de Azure o vSphereVolume.
Dado que estos volúmenes persistentes almacenan datos y ajustes, se deben proteger mediante políticas de seguridad restrictivas. Para los volúmenes persistentes basados en el almacenamiento basado en archivos, como NFS, Azure File o Gluster, asegúrese de que los permisos para los directorios estén configurados para evitar el acceso no autorizado. Para el almacenamiento de bloques, como volúmenes de EBS, Azure Disk y iSCSI, asegúrese de que los dispositivos de bloque estén limitados solo a aquellos usuarios que necesitan acceso.
A continuación, se describen los volúmenes de almacenamiento y sus fines previstos:
Nota:
Se establecen los requisitos de volumen persistente para 10.9.1 y pueden diferir de las versiones anteriores.
- En memoria: almacena recursos temporales del sistema.
- Paquetes de elementos: almacena grandes cargas y paquetes para admitir flujos de trabajo de publicación.
- Objeto: almacena contenido cargado y guardado, cachés de capas de imágenes y teselas alojadas y salida de geoprocesamiento. Se requieren cuatro para la implementación.
- En cola: almacena trabajos de geoprocesamiento asíncronos.
- Relacional: almacena datos de entidades alojados y aspectos administrativos tales como los ajustes de configuración y personalización. Se requieren dos para la implementación.
- Espaciotemporal e índice: almacena registros e índices para datos de entidades alojados para permitir la visualización y el análisis de datos en tiempo real y big data.
- Datos métricos de uso: almacena los datos de uso del servicio SIG.
Tenga en cuenta los requisitos de almacenamiento de su organización y defina el tamaño de cada PV en consecuencia.
PV estáticos
Si está proporcionando PV estáticos antes de la implementación, se recomiendan las especificaciones y etiquetas descritas a continuación.
Se proporciona el número de PV requerido para cada perfil de arquitectura.
Volumen | Perfil de desarrollo | Perfil de disponibilidad estándar | Perfil de disponibilidad mejorada |
---|---|---|---|
in-memory-volume | 1 | 1 | 1 |
item-packages-volume | 1 | 2 | 2 |
object-volume | 1 | 4 | 12 |
queue-volume | 1 | 2 | 2 |
relational-volume | 2 | 2 | 2 |
spatiotemporal-and-index-volume | 1 | 3 | 5 |
usage-metric-volume | 1 | 1 | 1 |
Al configurar una organización con el asistente de configuración se pueden utilizar especificaciones como las siguientes (nombre del volumen, tamaño, aplicación y nivel) para la vinculación de volúmenes; sin embargo, puede personalizarlas según sea necesario:
Volumen | Tamaño en GiB (mínimo) | Modo de acceso | Etiqueta |
---|---|---|---|
in-memory-volume | 16 | ReadWriteOnce | arcgis/tier=storage, arcgis/app=ignite |
item-packages-volume | 16 | ReadWriteOnce | arcgis/tier=api, arcgis/app=sharing |
object-volume | 16 | ReadWriteOnce | arcgis/tier=storage, arcgis/app=minio |
queue-volume | 16 | ReadWriteOnce | arcgis/tier=queue, arcgis/app=rabbitmq |
relational-volume | 16 | ReadWriteOnce | arcgis/tier=storage, arcgis/app=postgres |
spatiotemporal-and-index-volume | 16 | ReadWriteOnce | arcgis/tier=storage, arcgis/app=elasticsearch |
usage-metric-volume | 30 | ReadWriteOnce | arcgis/tier=storage, arcgis/app=prometheus |
PV dinámicos
Para el aprovisionamiento dinámico, se requiere una StorageClass.
El parámetro StorageClass de reclaimPolicy debe tener el valor retain.
Nota:
No todos los tipos de VM admiten discos premium en Azure. Utilice un disco premium cuando el tipo VM lo admita.- Para AKS, se muestra a continuación un ejemplo de una definición de StorageClass con Premium Azure Disk:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: arcgis-storage-default provisioner: kubernetes.io/azure-disk parameters: kind: Managed storageaccounttype: Premium_LRS reclaimPolicy: Retain allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer
- Para EKS, se muestra a continuación un ejemplo de una definición de StorageClass con volúmenes de EBS de tipo GP2:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: arcgis-storage-default provisioner: kubernetes.io/aws-ebs parameters: fsType: ext4 type: gp2 reclaimPolicy: Retain allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer
También puede utilizar las clases de almacenamiento predeterminadas que se proporcionan con un clúster de AKS o EKS. En AKS, son las clases de almacenamiento "default (Azure disk)" o "managed-premium" En EKS, es una clase de almacenamiento "GP2".
Requisitos de almacenamiento tras la implementación
Tras la implementación se aplican requisitos de almacenamiento adicionales para los PV de paquetes de elementos para efectuar actualizaciones y escalar la implementación de la API del portal como se describe a continuación.
El tipo de almacenamiento suministrado que configure durante la implementación determinará los requisitos para las actualizaciones y el escalado:
- PV dinámicos: el software escala y ajusta el almacenamiento siempre que haya suficiente almacenamiento disponible y se cumplan las especificaciones de la clase de almacenamiento.
- PV estáticos: un administrador deberá proporcionar PV de paquetes de elementos adicionales con las mismas especificaciones (etiquetas, tamaño y modo de acceso) que las especificadas durante la implementación para admitir el escalado y la actualización de los flujos de trabajo.
Actualizaciones
Antes de una actualización, cada pod en la implementación de la API del portal de la organización se ha configurado con un PV de paquetes de elementos. Para preparar una actualización, cada pod en la implementación de la API del portal debe configurarse con un PV adicional.
Por ejemplo, antes de una actualización, si la implementación de la API del portal se configura con tres pods en ejecución, se deben suministrar y configurar un total de seis PV con especificaciones equivalentes a las especificadas durante la implementación.
Una vez completada la actualización, la implementación de la API del portal utilizará los volúmenes persistentes recién suministrados y la reclamación de volumen persistente, y el set original podrá eliminarse.
Escalar la API del portal
Para escalar la implementación de la API del portal se necesita un PV de paquetes de elementos adicionales para cada pod adicional que se agrega a la implementación. Por ejemplo, si la organización necesita tres pods para la implementación de la API del portal, se deben suministrar y configurar un mínimo de tres PV de paquetes de elementos con especificaciones equivalentes a las especificadas durante la implementación.
Estación de trabajo de cliente
Los scripts de implementación son scripts de Bash que se pueden ejecutar desde una estación de trabajo de cliente remota.
Nota:
La estación de trabajo cliente utilizada debe estar de conformidad con los entornos admitidos.
Necesitará lo siguiente al configurar su estación de trabajo de cliente (se proporcionan los vínculos de descarga):
- Kubectl
- Una interfaz de línea de comandos específica del entorno (CLI)
Kubectl es un requisito previo para ejecutar el script de implementación. Utilice la instalación y configuración de Kubectl para descargar la herramienta de línea de comandos de Kubernetes.
Al administrar su implementación, puede utilizar herramientas de línea de comandos específicas del entorno. Utilice los siguientes vínculos para descargar una CLI específica del entorno:
Certificado TLS
ArcGIS Enterprise en Kubernetes utiliza un controlador de entrada basado en NGINX. Este controlador de entrada tiene un ámbito de espacio de nombres y se implementa para escuchar únicamente el tráfico de entrada del espacio de nombres de ArcGIS Enterprise. Se requiere un certificado TLS con el FQDN en el nombre común del certificado y el nombre alternativo de sujeto. Se puede utilizar un certificado firmado por una autoridad certificadora o un certificado autofirmado; no obstante, por motivos de seguridad, se recomienda utilizar un certificado firmado por una autoridad certificadora. Este es el certificado TLS predeterminado para el controlador de entrada. Las siguientes opciones de certificado están disponibles en el script de implementación para aplicar un certificado TLS para el tráfico de entrada:
- Un secreto de TLS existente que contiene una clave privada y un certificado
- Un archivo .pfx que contiene una clave privada y un certificado
- Una clave privada y un certificado con formato PEM
- Un certificado autofirmado
ArcGIS Enterprise en Kubernetes admite el uso de un certificado TLS para el controlador de entrada emitido y administrado por el administrador de certificados de Kubernetes. Este certificado se debe almacenar en un secreto de TLS en el mismo espacio de nombres que ArcGIS Enterprise. A continuación, se puede hacer referencia al secreto de TLS durante la implementación o después de crear la organización de ArcGIS Enterprise.
ArcGIS Enterprise en Kubernetes y ArcGIS Pro
Se requiere ArcGIS Pro 2.7 o posterior para consumir servicios de ArcGIS Enterprise en Kubernetes. No se admiten las versiones anteriores.
Se requiere ArcGIS Pro 2.8 o posterior para publicar servicios en ArcGIS Enterprise en Kubernetes.
Al registrar un elemento del almacén de datos desde una geodatabase empresarial, la versión de la geodatabase debe ser 10.9.0.2.8 o posterior. El número de versión de la geodatabase es una combinación de los números de ArcGIS Enterprise y ArcGIS Pro.
Las geodatabases empresariales creadas desde ArcMap no pueden registrarse como elementos de datos.