Ejecutar el script de implementación

Para implementar ArcGIS Enterprise on 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 on 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.

  1. En el equipo cliente de Kubernetes, abra un terminal como administrador.
  2. Cambie los directorios a la ubicación donde se encuentra su script de implementación.
  3. Cree el archivo de claves 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.

  4. (Opcional) Cree el secreto de TLS en el espacio de nombres.
  5. En el terminal, ejecute el script de implementación con el siguiente formato de comando:
    ./deploy.sh
    
  6. 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 on 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 on Kubernetes proporciona un equilibrador de carga durante el proceso de implementación.
    • Equilibrador de carga: durante la implementación, ArcGIS Enterprise on 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. Para utilizar las funcionalidades de equilibrio de carga de capa 7 a través de un controlador de entrada preexistente, debe indicar que no desea utilizar un equilibrador de carga en la nube.
    • Controlador de entrada en el nivel de clúster: es posible utilizar un controlador de entrada en el nivel de clúster para dirigir el tráfico a una implementación de ArcGIS Enterprise on Kubernetes, lo que permite a las organizaciones utilizar las funcionalidades de equilibrio de carga de la capa 7. Para permitir la creación del servicio de controlador de entrada NGINX en el clúster como tipo ClusterIP, responda yes cuando se le pregunte por el uso de un controlador de entrada en el nivel de clúster.
    • Espacio de nombres: el espacio de nombres del clúster de Kubernetes donde se implementará ArcGIS Enterprise on Kubernetes.
    • Archivo de clave de cifrado: el archivo de clave de cifrado que creó en el paso 3.
    • 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 on 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 on 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 on 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.

  7. Responda a la pregunta de si desea implementar o guardar el archivo de propiedades.

    Si necesita personalizar algún parámetro del archivo de propiedades, incluidas las propiedades adicionales de implementación automática, deberá salir de la secuencia de comandos de implementación y actualizar el archivo en disco. Ejemplos comunes de propiedades adicionales incluyen la actualización de los ALLOWED_PRIVILEGED_CONTAINERS=false para ejecutar solo contenedores sin privilegios o la actualización de la K8S_AVAILABILITY_TOPOLOGY_KEY=topology.kubernetes.io/zone para permitir la implementación de un clúster de zonas de disponibilidad múltiple.

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 on Kubernetes.

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 on 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 on Kubernetes.

  1. En el equipo cliente de Kubernetes, abra un terminal como administrador.
  2. Cambie los directorios a la ubicación del script de implementación y el archivo deploy.properties.
  3. Abra el archivo deploy.properties.
  4. 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
  5. Guarde el archivo. También puede cambiar el nombre del archivo.
  6. En el terminal, ejecute la herramienta password-encrypt.sh para generar contraseñas cifradas y utilizarlas en el archivo deploy.properties.
  7. 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 on 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="cluster.local": si tiene un sufijo de dominio del clúster personalizado para servicios y pods (por ejemplo, organizacion.com), puede utilizar esta propiedad para permitir que ArcGIS Enterprise on Kubernetes utilice el sufijo de dominio del clúster personalizado. El valor predeterminado es cluster.local.

K8S_AVAILABILITY_TOPOLOGY_KEY="kubernetes.io/hostname": si está implementando ArcGIS Enterprise on Kubernetes y su clúster de Kubernetes abarca tres o más zonas de disponibilidad, sustituya "kubernetes.io/hostname" por "topology.kubernetes.io/zone" o su etiqueta de topología de dominio personalizada. Para obtener más información sobre las implementaciones de zonas de disponibilidad múltiple, consulte Administración de clústeres de Kubernetes de zonas de disponibilidad múltiple.

INGRESS_SERVICE_USE_CLUSTER_IP=false: para utilizar las funcionalidades de equilibrio de carga de capa 7 a través de un controlador de entrada preexistente, debe establecer este valor en true. Al cambiar este valor a true, se invalida el valor que se haya establecido para el parámetro INGRESS_TYPE.

Después de actualizar los parámetros necesarios para el clúster de su organización en el archivo de propiedades de implementación, realice la implementación de ArcGIS Enterprise on Kubernetes mediante el siguiente comando:

./deploy.sh -f <user_properties>