Получение артефактов установки
1. Перед началом работы
-
Убедитесь, что выполнена подготовка к установке.
-
Соберите необходимые данные, полученные на предыдущем шаге:
Объект Значение Как получить значение Лицензия на программный комплекс 2ГИС DEMO-KEY-DGCTL-AAAAAA-BBBBBBСм. Подготовка к установке
2. Настройте хосты
docker.example.com
Этот хост будет обслуживать реестр Docker. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.
Чтобы настроить хост:
-
Установите операционную систему: см. список поддерживаемых операционных систем.
-
Установите реестр Docker: см. список поддерживаемых версий и требования к размеру реестра.
Реестр должен быть доступен по адресу
https://docker.example.com:5000/. -
Настройте аутентификацию в реестре по имени пользователя и паролю.
Пример:
- Имя пользователя:
registry - Пароль:
DOCKERregistryP@ssW0rd
- Имя пользователя:
artifacts.example.com
Этот хост будет обслуживать S3-совместимое хранилище артефактов установки. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.
Чтобы настроить хост:
-
Установите операционную систему: см. список поддерживаемых операционных систем.
-
Установите подходящее для ваших задач S3-совместимое хранилище. Рекомендуется использовать Ceph: см. список поддерживаемых версий и требования к размеру хранилища.
Хранилище должно быть доступно по адресу
https://artifacts.example.com:443/. -
В установленном хранилище создайте бакет
onpremise-artifactsнужного размера. -
Назначьте этому бакету сервисный аккаунт с правами на чтение и запись.
Для этого сервисного аккаунта сгенерируйте ключ, с помощью которого можно будет получить доступ к бакету.
Пример:
- Идентификатор ключа:
AKIAIOSFODNN7EXAMPLE - Секрет ключа:
wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY
- Идентификатор ключа:
example.com
Этот хост будет обслуживать утилиту 2GIS CLI. Хост должен быть доступен в публичной сети, см. Подготовка сетевой инфраструктуры.
Чтобы настроить хост:
-
Установите операционную систему: см. список поддерживаемых операционных систем.
-
Установите Docker Engine: см. список поддерживаемых версий.
-
Организуйте доступ с этого хоста к сервисам, настроенным ранее:
https://docker.example.com:5000/https://artifacts.example.com:443/
3. Загрузите артефакты установки
-
Зайдите по SSH на хост
example.com. -
Создайте конфигурационный файл
dgctl-config.yaml. Подробное описание доступных параметров см. в описании конфигурационного файла 2GIS CLI.dgctl-config.yamlkey: 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
components:
core:
version: 1.1.0
api-platform:
version: 1.1.0 -
Выполните команду для запуска утилиты 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:3 \
pull --config=/dgctl-config.yaml --apps-to-registry --generate-valuesЗагрузка артефактов установки может занять длительное время. Когда процесс завершится, в консольном выводе команды будет указан путь к файлам манифестов для всех компонентов. Пример:
manifests/<компонент>/1640661259.json.При использовании флага
--generate-valuesфайл с параметрами конфигурацииgeneral.yamlбудет сгенерирован и размещён в локальной директории, которая указана в аргументе-v <путь>:/values/<компонент>/(в примере:-v $(pwd)/values:/values). Если не указать путь, файл удалится после запуска утилиты.Примечание
Если вы используете утилиту 2GIS CLI версии 2, дополнительно укажите параметр
--versionв нужной версией программного комплекса On-Premise. Подробнее см. в Справке по командам и аргументам 2GIS CLI.
4. Организуйте зеркала инфраструктуры в приватной сети
Создайте зеркала следующих ресурсов в приватной сети:
| Ресурс | Хост в публичной сети | Хост-зеркало в приватной сети |
|---|---|---|
| Реестр Docker | docker.example.com | docker.storage.example.local |
| S3-совместимое хранилище артефактов установки | artifacts.example.com | artifacts.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