Использование offline-пакетов

Offline-пакеты — это специальные shell-скрипты, которые содержат данные, необходимые для offline-установки сервисов ADH.

Предварительные требования

Перед использованием offline-пакета убедитесь, что целевая среда соответствует следующим требованиям:

  • Установлен и запущен Docker.

  • Установлен Helm (v3.8.0 и выше).

  • Присутствует утилита bash.

  • Имеется достаточно свободного места на диске для образов и чартов.

  • Имеется сетевой доступ к OCI-реестру (для загрузки образов).

Настройка

  1. Переместите в целевую среду скрипт <pack.sh>, где <pack> — наименование скрипта, предоставленного вам командой поддержки Arenadata. Вы также можете использовать архив <pack.sh>.xz, но его требуется распаковать перед началом работы (например, с помощью команды xz -d <pack.sh>.xz).

  2. Проверьте целостность пакета:

    $ bash <pack.sh>

    Ожидаемый вывод содержит приветственное сообщение и список доступных команд:

    -------------------------------------------------------------------
    Hey there!
    That is a pack for offline installation prepared by Arenadata team.
    
    Use it wise and check out available options bellow.
    
    And make sure there's no newline at the end of this script,
    otherwise pack will be corrupted and you'll see "tar: This does not look like a tar archive"
    -------------------------------------------------------------------
    
    We have following options for that pack:
    
    unpack_adcm - load ADCM image from pack to local docker image storage
    create_adcm - create ADCM container
    master_adcm - unpack ADCM image, create ADCM container and run it on port 8000
    unpack_et - load Enterprise Tools images from pack to local docker image storage
    unpack_repo - load repo data to HTTP repo
    unpack_deps - unpack ET dependencies
    unpack_images - unpack and load docker images
    unpack_charts - unpack helm charts
    list - list repos and images in this pack
  3. Выведите список артефактов:

    $ bash <pack.sh> list

    Ожидаемый вывод содержит следующее:

    REPOS:
    IMAGES:
    hub.arenadata.io/adc-enterprise/trino-operator:1.3.1-0
    hub.arenadata.io/adc-enterprise/impala-operator:1.3.1-0
    hub.arenadata.io/adc-enterprise/kerberos-operator:1.3.1-0
    hub.arenadata.io/adh-enterprise/trino-docker:476_arenadata2-adh-4.2.0-x86_64
    hub.arenadata.io/adh-enterprise/impala-docker:4.5.0_arenadata1-adh-4.2.0-x86_64
    hub.arenadata.io/adh-enterprise/spark3-docker:3.5.4_arenadata3-adh-4.2.0-x86_64
    hub.arenadata.io/adh-enterprise/spark4-docker:4.0.1_arenadata1-adh-4.2.0-java17-x86_64
    hub.arenadata.io/adh-enterprise/spark4-docker:4.0.1_arenadata1-adh-4.2.0-java21-x86_64
    CHARTS:
    oci://hub.arenadata.io/adc-enterprise/charts/trino-operator:1.3.1-0
    oci://hub.arenadata.io/adc-enterprise/charts/trino-cluster:1.3.1-0
    oci://hub.arenadata.io/adc-enterprise/charts/impala-operator:1.3.1-0
    oci://hub.arenadata.io/adc-enterprise/charts/impala-cluster:1.3.1-0
    oci://hub.arenadata.io/adc-enterprise/charts/kerberos-operator:1.3.1-0
    oci://hub.arenadata.io/adc-enterprise/charts/kerberos-config:1.3.1-0
    ET_IMAGES:
    ET_DEPENDENCIES:
    /ADC/cli/adc_v1.3.1-0_linux_amd64
    /ADC/cli/adc_v1.3.1-0_darwin_arm64
    /ADC/cli/adc_v1.3.1-0_darwin_amd64
    /ADC/cli/adc_v1.3.1-0_linux_arm64
  4. Если вы планируете устанавливать сервисы через CLI, извлеките артефакты ET_DEPENDENCIES с помощью опции unpack_deps. Выберите файл, соответствующий вашей операционной системе, и сделайте его запускаемым, выполнив для него команду chmod +x. Для удобства вы можете переместить файл в /usr/local/bin и переименовать его в adc.

    После извлечения утилиты проверьте ее работоспособность:

    $ ./adc --help

    Ожидаемый вывод:

    Usage:
      adc [command]
    
    Available Commands:
      cluster     Manage product clusters
      completion  Generate the autocompletion script for the specified shell
      help        Help about any command
      operators   Manage operators
    
    Flags:
      -h, --help      help for adc
      -v, --verbose   Enable verbose logging
          --version   version for adc
    
    Use "adc [command] --help" for more information about a command.
  5. Извлеките и загрузите образы Docker:

    $ bash <pack.sh> unpack_images

    Данная команда сделает следующее:

    • Извлечет образы из пакета.

    • Загрузит образы в локальное хранилище Docker.

    • Сделает образы доступными для применения команд docker tag и docker push.

      Вывод должен содержать подтверждение загрузки:

      Loaded image: hub.arenadata.io/adh-enterprise/spark4-docker:4.0.1_arenadata1-adh-4.2.0-java17-x86_64
      Loaded image: hub.arenadata.io/adh-enterprise/spark4-docker:4.0.1_arenadata1-adh-4.2.0-java21-x86_64
      Loaded image: hub.arenadata.io/adc-enterprise/trino-operator:1.3.1-0
      Loaded image: hub.arenadata.io/adc-enterprise/impala-operator:1.3.1-0
      Loaded image: hub.arenadata.io/adc-enterprise/kerberos-operator:1.3.1-0
      Loaded image: hub.arenadata.io/adh-enterprise/trino-docker:476_arenadata2-adh-4.2.0-x86_64
      Loaded image: hub.arenadata.io/adh-enterprise/impala-docker:4.5.0_arenadata1-adh-4.2.0-x86_64
      Loaded image: hub.arenadata.io/adh-enterprise/spark3-docker:3.5.4_arenadata3-adh-4.2.0-x86_64
  6. Присвойте образам тег и загрузите их в приватный реестр. Список образов доступен в выводе третьего шага. Для каждого образа примените команды tag и push, как показано ниже:

    $ docker tag hub.arenadata.io/adh-enterprise/spark3-docker:3.5.4_arenadata3-adh-4.2.0-x86_64 "$PRIVATE_REGISTRY"/adh-enterprise/spark3-docker:3.5.4_arenadata3-adh-4.2.0-x86_64
    $ docker push "$PRIVATE_REGISTRY"/adh-enterprise/spark3-docker:3.5.4_arenadata3-adh-4.2.0-x86_64

    После каждой команды push вывод должен быть похожим на следующий:

    The push refers to repository [<PRIVATE_REGISTRY>/adh-enterprise/spark3-docker]
    8bdcbd2226bf: Pushed
    7c0e97019764: Pushed
    ee6d25b218db: Pushed
    b1c9872907bd: Pushed
    bc9aad66e281: Pushed
    fd7b85c1b84e: Pushed
    6401a22b39d4: Pushed
    6b0653d72989: Pushed
    5f70bf18a086: Pushed
    0761d1f99054: Pushed
    3.5.4_arenadata3-adh-4.2.0-x86_64: digest: sha256:06976d3d99cb2d3d890d05fcb9f061c83ab2619e99f9c259bcf58070f6afea35 size: 1845

    Реестр, репозиторий и теги настраиваются на шаге установки операторов, при этом рекомендуется документировать таблицу соответствий между образами из пакета и образами в реестре.

  7. Извлеките чарты Helm в локальную директорию:

    $ bash <pack.sh> unpack_charts

    Данная команда создаст директорию charts со всеми чартами Helm в формате .tgz.

    Выполните команду ниже для вывода организованной структуры чартов:

    $ tree charts/

    Вывод команды:

    charts
    └── hub.arenadata.io
        └── adc-enterprise
            └── charts
                ├── impala-cluster-1.3.1-0.tgz
                ├── impala-operator-1.3.1-0.tgz
                ├── kerberos-config-1.3.1-0.tgz
                ├── kerberos-operator-1.3.1-0.tgz
                ├── trino-cluster-1.3.1-0.tgz
                └── trino-operator-1.3.1-0.tgz
    
    3 directories, 6 files
  8. Загрузите чарты Helm в приватный реестр.

    Имея все чарты в директории charts в формате .tgz, вы можете использовать команду helm push для загрузки чартов в приватный реестр:

    $ helm push ./charts/hub.arenadata.io/adc-enterprise/charts/impala-cluster-1.3.1-0.tgz oci://$PRIVATE_REGISTRY/adc-enterprise/charts/impala-cluster

    Для каждой команды push вывод должен быть похож на следующий:

    Pushed: <PRIVATE_REGISTRY>/adc-enterprise/charts/impala-cluster:1.3.1-0
    Digest: sha256:8c93ec1fd886d492b0867b70aff0245efe133548f26aa67cd93cc0d72f311fe1

    Имейте в виду, что далее при установке и управлении вы будете использовать чарты из реестра OCI, при этом рекомендуется документировать таблицу соответствий между чартами из пакета и чартами в реестре.

Устранение неполадок

Не работает на macOS

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

Образы Docker не находятся после распаковки

Проверьте, загружены ли образы:

$ docker images | grep -E "impala|spark|trino|operator"

Если нет, повторите команду unpack_images:

$ bash pack.sh unpack_images
Недостаточно места на диске

Проверьте доступное место:

$ df -h
$ docker system df

При необходимости проведите очистку. Обратите внимание, что команда ниже удаляет неиспользуемые образы:

$ docker system prune -a
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней