Используйте реестр контейнеров вашей организации

При использовании реестра контейнеров организации с ArcGIS Enterprise on Kubernetes необходимо подготовить его вместе с образами контейнеров Esri перед развертыванием, обновлением или повышением версии. Для этого можно использовать инструменты реестра, входящие в комплект программного обеспечения, для внесения образов Docker Hub Esri в реестр контейнеров вашей организации.

Изучите инструменты реестра

Пакет развертывания ArcGIS Enterprise on Kubernetes включает в себя набор инструментов, которые используются для переноса образов в реестр контейнеров организации.

Эти инструменты находятся в setup/tools/registry-tools в директории, куда был извлечен пакет развертывания, и включают следующее:

  • image-download.sh - загружает все образы контейнеров на указанное устройство хранения в виде архивов .tar.gz.
  • image-upload.sh - используется для выгрузки образов контейнеров с указанного запоминающего устройства в реестр контейнеров.
  • image-transfer.sh — Передает образы непосредственно между двумя реестрами. Это быстрее, чем использование image-download.sh и image-upload.sh, если клиентская рабочая станция может получить доступ к обоим реестрам.
  • create-offline-manifest.sh - загружает манифест версии и импортирует его в вашу организацию, предоставляя автономный доступ к обновлениям.

Папка registry-tools также содержит файл registry-tools.properties.template. Этот файл свойств шаблона можно использовать с инструментами image-download.sh, image-upload.sh и image-transfer.sh. Обратитесь к файлу Readme.md в этой папке для получения дополнительной информации о файле свойств и инструментах реестра.

Подготовьте свой реестр, когда клиентский компьютер получит доступ к Docker Hub и реестру вашей организации

Если на вашем клиентском компьютере есть доступ к Docker Hub и реестру вашей организации, можно подготовить реестр к новому развертыванию или обновлению с помощью инструмента image-transfer.sh.

Чтобы подготовить реестр, выполните следующие действия:

  1. С портала My Esri получите версию программного обеспечения ArcGIS Enterprise on Kubernetes, которую собираетесь развернуть.
  2. Скачайте и извлеките скрипты развертывания на свой клиентский компьютер.

    Чтобы подготовиться к обновлению, загрузите новую версию скриптов развертывания, чтобы получить последние образы.

  3. Откройте терминал и измените директории на setup/tools/registry-tools.
  4. Если в вашем реестре требуется предварительное создание репозиториев образов, например, в Amazon Elastic Container Registry (ECR), выполните следующую команду, чтобы получить список необходимых репозиториев образов:
    /setup/tools/registry-tools/image-transfer.sh -l
    
  5. Определите соответствующий тег версии для версии программного обеспечения, которую вы собираетесь развернуть, обратившись к Информации по версии или выполнив следующую команду, чтобы просмотреть доступные теги образа:

    /setup/tools/registry-tools/image-transfer.sh -s
    

  6. Используйте шаблон, расположенный в папке registry-tools, или создайте отдельный файл свойств и включите в него следующие параметры:
    DOWNLOAD_REGISTRY="docker.io/esridocker"
    DOWNLOAD_USER="<username>"
    DOWNLOAD_PASS="<password>"
    CURRENT_VERSION="<current_version_tag>"
    DOWNLOAD_TAG="<version_tag>"
    UPLOAD_REGISTRY="<registry_host>/<organization>"
    UPLOAD_USER="<username>"
    UPLOAD_PASS="<password>"
    UPLOAD_TAG"="<version_tag>"
    DOWNLOAD_DIR="</path/to/download/directory>"
    ENCRYPTION_KEYFILE"</path/to/keyfile.txt>"
    

    Ключевой файл шифрования представляет собой обычный текстовый файл, используемый для шифрования и дешифрования паролей алгоритмом AES-256. Содержимое этого файла представляет собой заданный вами текст и не должно содержать паролей. Этот файл должен оставаться в одном и том же месте, а его содержимое не должно изменяться. Например:

    $ echo 'My Encryption Text!' >> /path/to/keyfile.txt
    
  7. Запустите скрипт, используя команду:
    ./image-transfer.sh -f </properties/file/path>
    

    Поскольку скрипт переносит все образы с тегами в ваш реестр контейнеров, его выполнение займет некоторое время. Если перенос прервется, запустите скрипт еще раз.

    Подсказка:

    После завершения работы инструмента image_transfer.sh образы по-прежнему сохраняются в кэше среды выполнения контейнера. Чтобы освободить место после успешного завершения, рекомендуется очистить кэш Docker от ненужных элементов. Можно сделать это, запустив docker system prune или docker image rm.

Подготовьте свой реестр, если реестр организации отключен от Интернета

Если реестр вашей организации отключен от Интернета, можно подготовить реестр к новому развертыванию или обновлению с помощью инструментов image-download.sh и image-upload.sh.

Чтобы подготовить реестр, выполните следующие действия:

  1. С портала My Esri получите версию программного обеспечения ArcGIS Enterprise on Kubernetes, которую собираетесь развернуть.
  2. Скачайте и извлеките скрипты развертывания на клиентский компьютер, запускающий инструмент скачивания, и на клиентский компьютер, запускающий инструмент загрузки.

    Рекомендуется использовать одинаковые версии скриптов развертывания. Чтобы подготовиться к обновлению, загрузите новую версию скриптов развертывания, чтобы получить последние образы.

  3. На клиентском компьютере, запускающим инструмент скачивания, откройте терминал и измените директории на setup/tools/registry-tools.
  4. Если в вашем реестре требуется предварительное создание репозиториев образов, например, в Amazon Elastic Container Registry (ECR), выполните следующую команду, чтобы получить список необходимых репозиториев образов:
    /setup/tools/registry-tools/image-download.sh -l
    
  5. Определите соответствующий тег версии для версии программного обеспечения, которую вы собираетесь развернуть, обратившись к Информации по версии или выполнив следующую команду, чтобы просмотреть доступные теги образа:

    /setup/tools/registry-tools/image-download.sh -s
    

  6. Если вы не используете файл свойств, запустите инструмент image-download.sh, используя команду в следующем формате:
    ./image-download.sh -r docker.io/esridocker -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
    
  7. Если вы используете файл свойств, примените шаблон, расположенный в registry-tools, или создайте отдельный файл свойств и включите в него следующие параметры:
    DOWNLOAD_REGISTRY="<docker.io/esridocker>"
    DOWNLOAD_USER="<username>"
    DOWNLOAD_PASS="<password>"
    DOWNLOAD_TAG="<version_tag>"
    DOWNLOAD_DIR="</path/to/download/directory>"
    ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
    

    Ключевой файл шифрования представляет собой обычный текстовый файл, используемый для шифрования и дешифрования паролей алгоритмом AES-256. Содержимое этого файла представляет собой заданный вами текст и не должно содержать паролей. Этот файл должен оставаться в одном и том же месте, а его содержимое не должно изменяться. Например:

    $ echo 'My Encryption Text!' >> /path/to/keyfile.txt
    

    1. Запустите скрипт, используя команду:
      ./image-download.sh -f </properties/file/path>
      

      Поскольку скрипт загружает все образы с тегами из репозитория Esri, его работа занимает некоторое время. Если загрузка прервется, запустите скрипт еще раз.

      Подсказка:

      После завершения работы инструмента image_download.sh образы по-прежнему сохраняются в кэше среды выполнения контейнера. Чтобы освободить место после успешного завершения, рекомендуется очистить кэш Docker от ненужных элементов. Можно сделать это, запустив docker system prune или docker image rm.

  8. Следуйте процессам вашей организации по перемещению образов на ваш отключенный клиентский компьютер.

    Этот компьютер должен иметь доступ к вашему частному реестру.

  9. На клиентском компьютере с доступом к реестру контейнеров, откройте терминал и измените директории на setup/tools/registry-tools.
  10. Если вы не используете файл свойств, запустите инструмент image-upload.sh, используя команду в следующем формате:
    ./image-upload.sh -r <registry_host>/<organization> -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
    
  11. Если вы используете файл свойств, примените шаблон, расположенный в registry-tools, или создайте отдельный файл свойств и включите в него следующие параметры:
    UPLOAD_REGISTRY="<registry_host>/<organization>"
    UPLOAD_USER="<username>"
    UPLOAD_PASS="<password>"
    UPLOAD_TAG="<version_tag>"
    DOWNLOAD_DIR="</path/to/download/directory>"
    ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
    
    1. Запустите скрипт, используя команду:
      ./image-upload.sh -f <properties file path>
      

      Поскольку скрипт выгружает все образы с тегами в ваш реестр контейнеров, его выполнение займет некоторое время. Если выгрузка прервется, запустите скрипт еще раз.

      Примечание:

      После завершения работы инструмента image-upload.sh образы по-прежнему сохраняются в кэше среды выполнения контейнера. Чтобы освободить место после успешного завершения, рекомендуется очистить кэш Docker от ненужных элементов. Можно сделать это, запустив docker system prune или docker image rm.

Подготовка реестра к обновлениям

Если вы готовите свой реестр перед установкой последнего обновления или перед обновлением своей организации, используйте файл свойств и задайте параметр CURRENT_VERSION, гарантирующий, что инструмент реестра будет загружать или переносить только необходимые образы. После того как вы выполнили шаги 1-4 в одном из разделов выше и заполнили файл свойств, выполните следующие действия:

  1. Определите текущую версию вашей организации, войдя в Admin API и объединив версию и сборку.

    Например, для версии 11.4.0 и сборки 6144 CURRENT_VERSION будет 11.4.0.6144.

  2. Задайте параметр CURRENT_VERSION в файле свойств.
  3. Если вы готовитесь к установке последнего обновления, запустите инструменты image-transfer.sh или image-download.sh.
    1. Если ваша клиентская рабочая станция имеет прямой доступ как к Docker Hub, так и к реестру целевой организации, выполните команду в следующем формате:
      ./image-transfer.sh -f <properties_file> --update
      
    2. Если клиентская рабочая станция имеет доступ к Docker Hub, но не к реестру целевой организации, выполните команду в следующем формате:
      ./image-download.sh -f <properties_file> --update
      
  4. Если вы готовитесь обновить свою организацию до следующей версии, запустите инструменты image-transfer.sh или image-download.sh.
    1. Если ваша клиентская рабочая станция имеет прямой доступ как к Docker Hub, так и к реестру целевой организации, выполните команду в следующем формате:
      ./image-transfer.sh -f <properties_file> --upgrade
      
    2. Если клиентская рабочая станция имеет доступ к Docker Hub, но не к реестру целевой организации, выполните команду в следующем формате:
      ./image-download.sh -f <properties_file> --upgrade
      
  5. Примечание:
    Если вы использовали инструмент image-download.sh, вы также должны перенести образы на клиентскую рабочую станцию с доступом к реестру организации и запустить инструмент image-upload.sh, указав директорию скопированных архивов образов.