Utilizar el registro de contenedores de su organización

Cuando utilice el registro de contenedores de su organización con ArcGIS Enterprise on Kubernetes, debe prepararlo con las imágenes de contenedores de Esri antes de realizar nuevos despliegues, actualizaciones o mejoras. Para ello, puede utilizar las herramientas de registro que se incluyen con el software para insertar las imágenes del hub Docker de Esri en el registro de contenedores de su organización.

Comprender las herramientas de registro

El paquete de implementación de ArcGIS Enterprise on Kubernetes incluye un conjunto de herramientas que se utilizan para transferir imágenes al registro de contenedores de su organización.

Estas herramientas se encuentran en /setup/tools/registry-tools, en el directorio donde extrajo el paquete de implementación, e incluyen las siguientes:

  • image-download.sh: descarga todas las imágenes de contenedor a su dispositivo de almacenamiento especificado como archivos .tar.gz.
  • image-upload.sh: carga imágenes de contenedor del dispositivo de almacenamiento al registro de su contenedor.
  • image-transfer.sh: transfiere imágenes directamente entre dos registros. Esto es más rápido que utilizar image-download.sh y image-upload.sh si la estación de trabajo del cliente puede acceder a ambos registros.
  • create-offline-manifest.sh: descarga el manifiesto de la versión y lo importa a su organización, lo que permite el acceso sin conexión a las actualizaciones y mejoras.

La carpeta registry-tools también contiene el archivo registry-tools.properties.template. Este archivo de propiedades de plantilla puede utilizarse con las herramientas image-download.sh, image-upload.sh y image-transfer.sh. Consulte el archivo Readme.md de esta carpeta para obtener más información sobre el archivo de propiedades y las herramientas del registro.

Preparar su registro cuando su equipo cliente tenga acceso al hub Docker y el registro de contenedores de su organización.

Si el equipo cliente tiene acceso al hub Docker y el registro de su organización, puede preparar su registro para una nueva implementación, actualización o mejora mediante el uso de la herramienta image-transfer.sh.

Siga estos pasos:

  1. Desde My Esri, obtenga la versión del software de ArcGIS Enterprise on Kubernetes que desea implantar.
  2. Descargue y extraiga el script de implementación en su equipo cliente.

    Para preparar una actualización, descargue la nueva versión del script de implementación para obtener las imágenes más recientes.

  3. Abra un terminal y cambie los directorios al directorio /setup/tools/registry-tools.
  4. Si su registro requiere que cree previamente los repositorios de imágenes, por ejemplo, en Amazon Elastic Container Registry (ECR), ejecute el comando siguiente para obtener una lista de repositorios de imágenes requeridos:
    ./image-transfer.sh -l
    
  5. Obtenga información relevante sobre la versión:
    • Si se está preparando para una nueva implementación, identifique la etiqueta de versión correspondiente a la versión de software que desea implementar haciendo referencia a las notas de la versión o ejecutando el siguiente comando para ver las etiquetas de las imágenes disponibles:
      ./image-transfer.sh -s
      

      Utilizará estas etiquetas al especificar la propiedad DOWNLOAD_TAGS.

    • Si se está preparando para una actualización o mejora, identifique la versión actual de su organización, que combina la versión y la compilación. Busque esta información iniciando sesión en ArcGIS Enterprise Manager, desplazándose hasta la parte inferior de la página Descripción general y haciendo clic en Acerca de esta organización.

      Por ejemplo, para la versión 11.4.0 y la compilación 6144, la CURRENT_VERSION sería 11.4.0.6144.

  6. Utilice la plantilla situada en la carpeta registry-tools o cree un archivo de propiedades separado e incluya estos parámetros:
    DOWNLOAD_REGISTRY="docker.io/esridocker"
    DOWNLOAD_USER="<username>"
    DOWNLOAD_PASS="<password>"
    CURRENT_VERSION="<current_version_tag>"
    DOWNLOAD_TAGS="<version_tag>"
    UPLOAD_REGISTRY="<registry_host>/<repository_prefix>"
    UPLOAD_USER="<username>"
    UPLOAD_PASS="<password>"
    UPLOAD_TAGS="<version_tag>"
    DOWNLOAD_DIR="</path/to/download/directory>"
    ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
    

    Para obtener más información sobre algunas de estas propiedades, consulte lo siguiente:

    • CURRENT_VERSION: la versión actual de su organización identificada en el paso 5, utilizada al preparar actualizaciones y mejoras. Si se está preparando una nueva implementación, esta propiedad se omitirá.
    • DOWNLOAD_TAGS y UPLOAD_TAGS: se utilizan para nuevas implementaciones. Si se está preparando para actualizaciones o mejoras, estas propiedades se omitirán.
    • UPLOAD_REGISTRY: el registro de contenedores al que cargará las imágenes. Proporcione el host del registro y, si procede, el prefijo del repositorio asociado a su registro. El host del registro es el nombre de dominio completo del host del registro de contenedores. El prefijo del repositorio es el repositorio de imágenes utilizado para almacenar imágenes de contenedores.
    • ENCRYPTION_KEYFILE: 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 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, por ejemplo:
      $ echo 'My Encryption Text!' >> </path/to/keyfile.txt>
      
  7. Ejecute el script utilizando el comando correspondiente a su flujo de trabajo:
    • Preparación para una nueva implementación
      ./image-transfer.sh -f </path/to/properties/file>
      
    • Preparación para una actualización
      ./image-transfer.sh -f </path/to/properties/file> --update
      
    • Preparación para una mejora
      ./image-transfer.sh -f </path/to/properties/file> --upgrade
      

    Para obtener más información sobre los indicadores relacionados, consulte lo siguiente:

    • --update: transfiere las imágenes de contenedor necesarias para aplicar la última actualización.
    • --upgrade: transferencia de imágenes de contenedores necesarias para actualizar a la última versión de ArcGIS Enterprise on Kubernetes.
    • --view: utilícela con --update o --upgrade para ver la lista de imágenes acumuladas sin necesidad de descargarlas.
    Tarda un tiempo en completarse, dado que el script transfiere múltiples imágenes en el registro de su contenedor. Si se interrumpe una transferencia, vuelva a ejecutar el script para reanudarla.

    Sugerencia:

    Una vez que la herramienta image_transfer.sh se ejecute, las imágenes siguen existiendo en la caché de tiempo de ejecución del contenedor. Para liberar espacio después de que se haya completado correctamente, se recomienda que limpie los elementos que no se necesitan en la caché de Docker. Puede hacerlo ejecutando docker system prune o docker image rm.

Preparar su registro desconectado de Internet

Si el registro de su organización está desconectado de internet, puede preparar su registro para una implementación o actualización nueva mediante el uso de las herramientas image-download.sh y image-upload.sh.

Siga estos pasos:

  1. Desde My Esri, obtenga la versión del software de ArcGIS Enterprise on Kubernetes que desea implantar.
  2. Descargue y extraiga los scripts de implementación en el equipo cliente en el que se ejecuta la herramienta de descarga y el equipo cliente en el que se ejecuta la herramienta de carga.

    Se recomienda utilizar la misma versión de los scripts de implementación. Para preparar una actualización, descargue la nueva versión de las secuencias de comandos de implementación para obtener las imágenes más recientes.

  3. En el equipo cliente en el que se ejecuta la herramienta de descarga, abra un terminal y cambie los directorios al directorio /setup/tools/registry-tools.
  4. Si su registro requiere que cree previamente los repositorios de imágenes, por ejemplo, en Amazon Elastic Container Registry (ECR), ejecute el comando siguiente para obtener una lista de repositorios de imágenes requeridos:
    ./image-download.sh -l
    
  5. Obtenga información relevante sobre la versión:
    • Si se está preparando para una nueva implementación, identifique la etiqueta de versión correspondiente a la versión de software que desea implementar haciendo referencia a las notas de la versión o ejecutando el siguiente comando para ver las etiquetas de las imágenes disponibles:
      ./image-download.sh -s
      

      Utilizará estas etiquetas al especificar la propiedad DOWNLOAD_TAGS.

    • Si se está preparando para una actualización o mejora, identifique la versión actual de su organización, que combina la versión y la compilación. Busque esta información iniciando sesión en ArcGIS Enterprise Manager, desplazándose hasta la parte inferior de la página Descripción general y haciendo clic en Acerca de esta organización.

      Por ejemplo, para la versión 11.4.0 y la compilación 6144, la CURRENT_VERSION sería 11.4.0.6144.

  6. Si se está preparando para una nueva implementación y no está utilizando el archivo de propiedades, ejecute la herramienta image-download.sh con el siguiente formato de comando:
    ./image-download.sh -r docker.io/esridocker -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
    
  7. Si está utilizando el archivo de propiedades, use la plantilla que se encuentra en la carpeta registry-tools o cree un archivo de propiedades separado e incluya estos parámetros:
    DOWNLOAD_REGISTRY="docker.io/esridocker"
    DOWNLOAD_USER="<username>"
    DOWNLOAD_PASS="<password>"
    CURRENT_VERSION="<current_version_tag>"
    DOWNLOAD_TAGS="<version_tag>"
    DOWNLOAD_DIR="</path/to/download/directory>"
    ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
    

    Para obtener más información sobre algunas de estas propiedades, consulte lo siguiente:

    • CURRENT_VERSION: la versión actual de su organización identificada en el paso 5, utilizada al preparar actualizaciones y mejoras. Si se está preparando una nueva implementación, esta propiedad se omitirá.
    • DOWNLOAD_TAGS: se utilizan para nuevas implementaciones. Si se está preparando para actualizaciones o mejoras, esta propiedad se omitirá.
    • ENCRYPTION_KEYFILE: 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 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, por ejemplo:
      $ echo 'My Encryption Text!' >> </path/to/keyfile.txt>
      
    1. Ejecute el script utilizando el comando correspondiente a su flujo de trabajo:
      • Preparación para una nueva implementación
        ./image-download.sh -f </path/to/properties/file>
        
      • Preparación para una actualización
        ./image-download.sh -f </path/to/properties/file> --update
        
      • Preparación para una mejora
        ./image-download.sh -f </path/to/properties/file> --upgrade
        

      Para obtener más información sobre los indicadores relacionados, consulte lo siguiente:

      • --update: transfiere las imágenes de contenedor necesarias para aplicar la última actualización.
      • --upgrade: transferencia de imágenes de contenedores necesarias para actualizar a la última versión de ArcGIS Enterprise on Kubernetes.
      • --view: utilícela con --update o --upgrade para ver la lista de imágenes acumuladas sin necesidad de descargarlas.

      Tarda un tiempo en completarse, dado que el script descarga múltiples imágenes desde el repositorio Esri. Si se interrumpe una descarga, vuelva a ejecutar el script para reanudarla.

      Sugerencia:
      Una vez que la herramienta image_download.sh se ejecute, las imágenes siguen existiendo en la caché de tiempo de ejecución del contenedor. Para liberar espacio después de que se haya completado correctamente, se recomienda que limpie los elementos que no se necesitan en la caché de Docker. Puede hacerlo ejecutando docker system prune o docker image rm

  8. Siga los procesos de su organización para mover imágenes a su equipo cliente desconectado.

    Este equipo debe tener acceso a su registro privado.

  9. En el equipo cliente con acceso al registro de su contenedor, abra un terminal y cambie los directorios al directorio /setup/tools/registry-tools.
  10. Si no está utilizando el archivo de propiedades, ejecute la herramienta image-upload.sh con el siguiente formato de comando:
    ./image-upload.sh -r <registry_host>/<repository_prefix> -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
    
  11. Si está utilizando el archivo de propiedades, use la plantilla que se encuentra en la carpeta registry-tools o cree un archivo de propiedades separado e incluya estos parámetros:
    UPLOAD_REGISTRY="<registry_host>/<repository_prefix>"
    UPLOAD_USER="<username>"
    UPLOAD_PASS="<password>"
    UPLOAD_TAGS="<version_tag>"
    DOWNLOAD_DIR="</path/to/download/directory>"
    ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
    

    Para obtener más información sobre algunas de estas propiedades, consulte lo siguiente:

    • UPLOAD_REGISTRY: el registro de contenedores al que cargará las imágenes. Proporcione el host del registro y, si procede, el prefijo del repositorio asociado a su registro. El host del registro es el nombre de dominio completo del host del registro de contenedores. El prefijo del repositorio es el repositorio de imágenes utilizado para almacenar imágenes de contenedores. Si se está preparando para una actualización o mejora, asegúrese de especificar el directorio de los archivos de imagen copiados.
    • UPLOAD_TAGS: se utilizan al preparar nuevas implementaciones. Si se está preparando para actualizaciones o mejoras, esta propiedad se omitirá.
    1. Ejecute el script utilizando el comando correspondiente a su flujo de trabajo:
      • Preparación para una nueva implementación
        ./image-upload.sh -f </path/to/properties/file>
        
      • Preparación para una actualización o mejora
        ./image-upload.sh -f </path/to/properties/file> -t all
        

      Si se especifica all para la opción -t, se cargarán todas las imágenes que haya descargado anteriormente utilizando los indicadores --update o --upgrade.

      Tarda un tiempo en completarse, dado que el script carga todas las imágenes etiquetadas en el registro de su contenedor. Si se interrumpe una carga, vuelva a ejecutar el script para reanudarla.

      Nota:

      Una vez que la herramienta image-upload.sh se ejecute, las imágenes siguen existiendo en la caché de tiempo de ejecución del contenedor. Para liberar espacio después de que se haya completado correctamente, se recomienda que limpie los elementos que no se necesitan en la caché de Docker. Puede hacerlo ejecutando docker system prune o docker image rm.