Получение артефактов установки
1. Перед началом работы
-
Убедитесь, что выполнена подготовка к установке.
-
Соберите необходимые данные, полученные на предыдущем шаге:
Объект Значение Как получить значение Лицензия на программный комплекс 2ГИС DEMO-KEY-DGCTL-AAAAAA-BBBBBB
См. Подготовка к установке -
Убедитесь, что удовлетворены следующие требования к ресурсам:
Общее количество ресурсов Хранилище Для S3-совместимого хранилища артефактов установки 800 Гб Для реестра Docker 100 Гб
2. Настройте хосты
docker.example.com
Этот хост будет обслуживать реестр Docker. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.
Чтобы настроить хост:
-
Установите Ubuntu 20.04 LTS.
-
Установите Docker Registry 2.71.
Реестр должен быть доступен по адресу
https://docker.example.com:5000/
. -
Настройте аутентификацию в реестре по имени пользователя и паролю.
Пример:
- Имя пользователя:
registry
- Пароль:
DOCKERregistryP@ssW0rd
- Имя пользователя:
artifacts.example.com
Этот хост будет обслуживать S3-совместимое хранилище артефактов установки. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.
Чтобы настроить хост:
-
Установите Ubuntu 20.04 LTS.
-
Установите подходящее для ваших задач S3-совместимое хранилище. Рекомендуется использовать Ceph 14.2.22.
Хранилище должно быть доступно по адресу
https://artifacts.example.com:443/
. -
В установленном хранилище создайте бакет
onpremise-artifacts
нужного размера. -
Назначьте этому бакету сервисный аккаунт с правами на чтение и запись.
Для этого сервисного аккаунта сгенерируйте ключ, с помощью которого можно будет получить доступ к бакету.
Пример:
- Идентификатор ключа:
AKIAIOSFODNN7EXAMPLE
- Секрет ключа:
wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY
- Идентификатор ключа:
example.com
Этот хост будет обслуживать утилиту 2GIS CLI. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.
Чтобы настроить хост:
-
Установите Ubuntu 20.04 LTS.
-
Установите Docker Engine 19.03.4.
-
Организуйте доступ с этого хоста к сервисам, настроенным ранее:
https://docker.example.com:5000/
https://artifacts.example.com:443/
3. Загрузите артефакты установки
-
Зайдите по SSH на хост
example.com
. -
Создайте конфигурационный файл
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: /
-
Выполните команду для запуска утилиты 2GIS CLI:
-
Для версий On-Premise 1.9.0 и выше:
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.27.0 --apps-to-registry --generate-values
-
Для более ранних версий On-Premise:
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 \ --user $(id -u):$(id -g) \ 2gis/dgctl:latest \ pull --config=/dgctl-config.yaml --version=1.27.0 --apps-to-registry
Загрузка артефактов установки может занять длительное время. Когда процесс завершится, в консольном выводе команды будет присутствовать путь к файлу манифеста:
Пример:
manifests/1640661259.json
При использовании флага
--generate-values
дополнительные файлы с параметрами будут сгенерированы и размещены в локальной директорииvalues
. -
4. Организуйте зеркала инфраструктуры в приватной сети
Создайте зеркала следующих ресурсов в приватной сети:
Ресурс | Хост в публичной сети | Хост-зеркало в приватной сети |
---|---|---|
Реестр Docker | docker.example.com |
docker.storage.example.local |
S3-совместимое хранилище артефактов установки | artifacts.example.com |
artifacts.storage.example.local |
Для зеркал в приватной сети эндпоинты будут отличаться от эндпоинтов в публичной сети:
Пример:
- Эндпоинт зеркала реестра:
docker.storage.example.local:5000
- Эндпоинт зеркала хранилища:
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