Перейти к основному содержимому

Получение артефактов установки

1. Перед началом работы

  1. Убедитесь, что выполнена подготовка к установке.

  2. Соберите необходимые данные, полученные на предыдущем шаге:

    ОбъектЗначениеКак получить значение
    Лицензия на программный комплекс 2ГИСDEMO-KEY-DGCTL-AAAAAA-BBBBBBСм. Подготовка к установке

2. Настройте хосты

docker.example.com

Этот хост будет обслуживать реестр Docker. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.

Чтобы настроить хост:

  1. Установите операционную систему: см. список поддерживаемых операционных систем.

  2. Установите реестр Docker: см. список поддерживаемых версий и требования к размеру реестра.

    Реестр должен быть доступен по адресу https://docker.example.com:5000/.

  3. Настройте аутентификацию в реестре по имени пользователя и паролю.

    Пример:

    • Имя пользователя: registry
    • Пароль: DOCKERregistryP@ssW0rd

artifacts.example.com

Этот хост будет обслуживать S3-совместимое хранилище артефактов установки. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.

Чтобы настроить хост:

  1. Установите операционную систему: см. список поддерживаемых операционных систем.

  2. Установите подходящее для ваших задач S3-совместимое хранилище. Рекомендуется использовать Ceph: см. список поддерживаемых версий и требования к размеру хранилища.

    Хранилище должно быть доступно по адресу https://artifacts.example.com:443/.

  3. В установленном хранилище создайте бакет onpremise-artifacts нужного размера.

  4. Назначьте этому бакету сервисный аккаунт с правами на чтение и запись.

    Для этого сервисного аккаунта сгенерируйте ключ, с помощью которого можно будет получить доступ к бакету.

    Пример:

    • Идентификатор ключа: AKIAIOSFODNN7EXAMPLE
    • Секрет ключа: wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY

example.com

Этот хост будет обслуживать утилиту 2GIS CLI. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.

Чтобы настроить хост:

  1. Установите операционную систему: см. список поддерживаемых операционных систем.

  2. Установите Docker Engine: см. список поддерживаемых версий.

  3. Организуйте доступ с этого хоста к сервисам, настроенным ранее:

    • https://docker.example.com:5000/
    • https://artifacts.example.com:443/

3. Загрузите артефакты установки

  1. Зайдите по SSH на хост example.com.

  2. Создайте конфигурационный файл dgctl-config.yaml. Подробное описание доступных параметров см. в описании конфигурационного файла 2GIS CLI.

    dgctl-config.yaml
    key: DEMO-KEY-DGCTL-AAAAAA-BBBBBB
    log-format: json

    storage:
    type: s3

    host: artifacts.example.com:443
    bucket: onpremise-artifacts
    access-key: AKIAIOSFODNN7EXAMPLE
    secret-key: wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY

    docker:
    registry:
    username: registry
    password: DOCKERregistryP@ssW0rd
    server-address: https://docker.example.com:5000
    image-prefix: /
  3. Выполните команду для запуска утилиты 2GIS CLI:

    docker run --rm \
    -v $(pwd)/dgctl-config.yaml:/dgctl-config.yaml \
    -v /mnt/dgctl-source:/dgctl-source \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v $(pwd)/values:/values \
    --user $(id -u):$(id -g) \
    2gis/dgctl:latest \
    pull --config=/dgctl-config.yaml --version=1.32.0 --apps-to-registry --generate-values

    Загрузка артефактов установки может занять длительное время. Когда процесс завершится, в консольном выводе команды будет указан путь к файлу манифеста. Пример: manifests/1640661259.json.

    При использовании флага --generate-values файл с параметрами конфигурации general.yaml будет сгенерирован и размещён в локальной директории, которая указана в аргументе -v <путь>:/values (в примере: -v $(pwd)/values:/values). Если не указать путь, файл удалится после запуска утилиты.

4. Организуйте зеркала инфраструктуры в приватной сети

Создайте зеркала следующих ресурсов в приватной сети:

РесурсХост в публичной сетиХост-зеркало в приватной сети
Реестр Dockerdocker.example.comdocker.storage.example.local
S3-совместимое хранилище артефактов установкиartifacts.example.comartifacts.storage.example.local

Для зеркал в приватной сети endpoints будут отличаться от endpoints в публичной сети:

Пример:

  • Endpoint зеркала реестра: docker.storage.example.local:5000
  • Endpoint зеркала хранилища: artifacts.storage.example.local:443

5. Создайте секрет Kubernetes для доступа к реестру Docker

Этот секрет нужен, чтобы Helm, с помощью которого устанавливаются сервисы программного комплекса 2ГИС, мог получить доступ к Docker-образам, которые находятся в реестре. Без такого секрета любая операция, связанная с реестром, завершится неудачей.

Пример:

kubectl create secret docker-registry onpremise-registry-creds \
--docker-server=docker.storage.example.local:5000 \
--docker-username=registry \
--docker-password=DOCKERregistryP@ssW0rd

Что дальше?