Para implementar ArcGIS Enterprise en Kubernetes, ejecute un script de Bash junto con los manifiestos de Kubernetes. El paquete de implementación está disponible para su descarga en My Esri y se suministra como un archivo .tar.gz. Antes de ejecutar el script de implementación, revise las instrucciones para empezar.
Nota:
Para ejecutar el script de implementación en modo interactivo, la contraseña del registro de contenedor no debe tener más de 30 caracteres. Si la contraseña del registro de contenedor tiene más de 30 caracteres, puede ejecutar el script de implementación automáticamente. Antes, utilice la herramienta password-encrypt.sh para generar una contraseña cifrada, elimine los saltos de línea de ella y especifíquela en el archivo deploy.properties como CONTAINER_REGISTRY_PASSWORD.
Ejecutar el script de implementación en modo interactivo
Si ejecuta el script de implementación de ArcGIS Enterprise en Kubernetes sin especificar un archivo de parámetros de configuración, se abre en modo interactivo. El script solicita cada parámetro y comprueba inmediatamente la validez de cada valor. De este modo, se logra una forma rápida de verificar cada parámetro de configuración de su implementación.
- En el equipo cliente de Kubernetes, abra un terminal como administrador.
- Cambie los directorios a la ubicación donde se encuentra su script de implementación.
- En el terminal, ejecute el script de implementación con el siguiente formato de comando:
./deploy.sh
- Complete los parámetros.
El script le solicita los siguientes parámetros, de uno en uno. Si proporciona un valor no válido, el script devuelve inmediatamente un error y solicita un parámetro válido. A continuación, se presenta un resumen de las entradas de usuario:
Nota:
No es necesario ejecutar este script como usuario raíz.
- Plataforma de implementación: ArcGIS Enterprise en Kubernetes utiliza la entrada para dirigir el tráfico entrante a los servicios del clúster. Si va a implementar en un servicio de Kubernetes administrado por un proveedor en la nube, como Amazon Web Services EKS o Microsoft Azure Kubernetes Service (AKS), el controlador de entrada puede exponerse externamente utilizando un servicio de equilibrador de carga del proveedor en la nube. En este caso, ArcGIS Enterprise en Kubernetes proporciona un equilibrador de carga durante el proceso de implementación.
- Equilibrador de carga: durante la implementación, ArcGIS Enterprise en Kubernetes puede proporcionar equilibradores de carga en la nube seleccionados con Azure Load Balancer (externo e interno) y AWS Network Load Balancer (externo a NLB e interno de NLB). Cada opción le solicita que especifique la IP del equilibrador de carga. En esta versión, solo los equilibradores de carga de Azure admiten esta opción; AWS EKS no admite la opción de IP del equilibrador de carga. Si utiliza OpenShift, puede utilizar Rutas, que generalmente están respaldadas por equilibradores de carga basados en HAProxy o Big-IP.
- Espacio de nombres: el espacio de nombres del clúster de Kubernetes donde se implementará ArcGIS Enterprise en Kubernetes.
- Archivo de clave de cifrado: el archivo de clave de cifrado es un archivo de texto sin formato utilizado para el cifrado y descifrado AES-256 de contraseñas. El contenido de este archivo es texto sin formato que especifica el usuario y no debe contener contraseñas. Este archivo debe permanecer en una ubicación fija y el contenido no debe cambiarse.
- Host del registro: el nombre de dominio totalmente calificado (FQDN) del host del registro de contenedor (por ejemplo, docker.io).
- Ruta de imágenes: el repositorio de imágenes que se utiliza para extraer las imágenes de contenedor (por ejemplo, esridocker).
- Nombre de usuario del registro: el nombre de usuario de una cuenta del registro de contenedor especificado que almacena permisos para extraer del registro.
Precaución:
La cuenta del registro del contenedor que especifique debe tener un nivel mínimo de privilegios asociados, por ejemplo, solo aquellos para descargar imágenes del contenedor. De forma predeterminada, Kubernetes almacena y accede a las credenciales no cifradas de esta cuenta de forma secreta. Se recomienda que no especifique una cuenta que tenga privilegios para enviar cambios, editar metadatos o administrar el registro del contenedor.
- Contraseña del registro: la contraseña de la cuenta del registro de contenedor especificada.
- Nombre de dominio totalmente calificado: el FQDN necesario para acceder a ArcGIS Enterprise en Kubernetes. Apunta a un equilibrador de carga, un proxy inverso, un generador de rutas de eje u otro punto de front-end web configurado para dirigir el tráfico al controlador de entrada.
- Ruta de contexto: la ruta de contexto utilizada en la URL de ArcGIS Enterprise en Kubernetes (por ejemplo, https://<FQDN>/<context path>).
Nota:
Una vez completada la implementación, se utilizará la ruta de contexto que especifique aquí al configurar Web Adaptor de ArcGIS Enterprise en Kubernetes con su organización.
- Puerto de nodo: el controlador de entrada expone el tráfico externo a través del tipo de servicio "LoadBalancer" o "NodePort". El puerto se puede especificar en el rango 30000-32767. Si no se especifica un puerto, Kubernetes asigna automáticamente un puerto disponible de este rango.
- Certificado TLS: se requiere un certificado TLS (autofirmado o firmado por una autoridad certificadora de terceros) con el FQDN y el nombre alternativo de sujeto. Este será el certificado TLS predeterminado para el controlador de entrada.
Cuando haya proporcionado todos los parámetros válidos, se guarda un archivo de propiedades en su directorio de trabajo actual. Utilice este archivo de propiedades para automatizar implementaciones futuras o desimplementar ArcGIS Enterprise en Kubernetes.
Nota:
Cuando se genere el archivo de propiedades, podrá personalizar los parámetros que contiene para satisfacer los requisitos de su implementación. Por ejemplo, si la organización deje ejecutar contenedores sin privilegios, actualice ALLOWED_PRIVILEGED_CONTAINERS=false antes de la implementación. Si desea obtener más detalles, consulte la sección Propiedades adicionales de implementación silenciosa a continuación.
El último paso de la implementación es crear su organización de ArcGIS Enterprise.
Sugerencia:
El script de implementación utiliza comandos de kubectl para validar requisitos previos, como un espacio de nombres válido. Si el comando de kubectl no puede comunicarse con el clúster debido a un problema de red o de firewall, puede parecer que el script de implementación no responde. Si esto sucede, finalice el comando ./deploy.sh y ejecute kubectl directamente desde un terminal para iniciar la comunicación con el clúster.
Ejecutar el script de implementación automáticamente
Como alternativa a ejecutar el script de implementación en modo interactivo, puede implementar ArcGIS Enterprise en Kubernetes automáticamente. El script de implementación se suministra con un archivo deploy.properties, que proporciona un conjunto de parámetros que solicitan una entrada única a su implementación de ArcGIS Enterprise en Kubernetes.
Nota:
Se recomienda que ejecute la herramienta password-encrypt.sh para generar contraseñas cifradas y utilizarlas en el archivo deploy.properties.- En el equipo cliente de Kubernetes, abra un terminal como administrador.
- Cambie los directorios a la ubicación del script de implementación y el archivo deploy.properties.
- Abra el archivo deploy.properties.
- Consulte los comentarios descriptivos del archivo para obtener un resumen de las entradas de los usuarios y proporcione valores para cada parámetro que aparece en el archivo.
El archivo se divide en las siguientes secciones:
- Plataforma de implementación
- Espacio de nombres
- Archivo de claves de cifrado
- Registro de contenedor
- Nombre de dominio totalmente calificado (FQDN)
- Certificado TLS
- Propiedades adicionales
- Guarde el archivo. También puede cambiar el nombre del archivo.
- En el terminal, ejecute el script de implementación con el siguiente formato de comando:
./deploy.sh -f <user_properties>
El contenido de <user properties> se deriva del archivo deploy.properties.
Antes de implementar ArcGIS Enterprise en Kubernetes, el script de implementación validará si el sistema cumple con los requisitos mínimos del sistema y si ha proporcionado una entrada válida para cada parámetro enumerado en el archivo deploy.properties.
El último paso de la implementación es crear su organización de ArcGIS Enterprise.
Propiedades adicionales de implementación automática
El archivo deploy.properties contiene propiedades adicionales que se pueden utilizar al implementar de forma automática. Se proporcionan los valores predeterminados de cada una.
ALLOWED_PRIVILEGED_CONTAINERS=true: si no puede ejecutar un contenedor con privilegios, establezca este valor en false. Al hacerlo, también tendrá que ejecutar el comando # "sysctl -w vm.max_map_count=262144" como raíz para aumentar vm.max_map_count a 262144 en todos los nodos de su clúster.
CONTAINER_IMAGE_PULL_POLICY="Always": cuando se inician nuevos contenedores, ImagePullPolicy determina si se extrae una nueva imagen de contenedor del registro de contenedores. El valor predeterminado es "Always" y extraerá una nueva imagen cada vez que se inicie un contenedor. Si desea extraer una nueva imagen solo si todavía no está presente, establezca este valor en "IfNotPresent".
INGRESS_HSTS_ENABLED=false: la Seguridad de transporte estricta de HTTP (HSTS) agrega una capa de seguridad al tráfico web de su organización. De forma predeterminada, la opción del protocolo HSTS está establecida en false. Para activar HSTS, cambie este valor a true.
INGRESS_SSL_PROTOCOLS="TLSv1.2 TLSv1.3": establece los protocolos SSL que se van a utilizar. El valor predeterminado es "TLSv1.2 TLSv1.3". Si se deben permitir versiones adicionales de TLS, especifíquelas aquí.
INGRESS_SSL_CIPHERS="ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA": esta propiedad establece la lista de cifrados SSL que se van a habilitar. Si se requieren cifrados SSL adicionales, especifíquelos aquí.
K8S_CLUSTER_DOMAIN="${K8S_CLUSTER_DOMAIN:-cluster.local}": si tiene un DNS personalizado para servicios y pods (por ejemplo, organizacion.com), puede utilizar esta propiedad para permitir que ArcGIS Enterprise en Kubernetes utilice el DNS personalizado. El valor predeterminado es cluster.local.