Установка GIS Platform
Важное примечание:
Все пароли и ключи в этом разделе приведены в иллюстративных целях.
При реальной установке рекомендуется использовать более сложные и надёжные пароли.
1. Перед установкой
-
По возможности познакомьтесь с:
-
Убедитесь, что выполнены необходимые предварительные шаги:
-
Соберите необходимые данные, заданные или полученные на предыдущих шагах:
Объект Пример значения Как получить значение Эндпоинт зеркала реестра Docker docker.storage.example.local:5000
См. Получение артефактов установки Эндпоинт API сервиса ключей http://keys-api
См. Установка сервиса ключей Эндпоинт Tiles API http://tiles-api
См. Установка API для работы с картами Эндпоинт Catalog APIs http://catalog-api
См. Установка API для работы с поиском Эндпоинт прокси для API пробок http://traffic-proxy
См. Установка прокси для API пробок API-ключи CATALOG_KEY
См. Установка сервиса ключей -
Убедитесь, что удовлетворены требования к ресурсам, приведенные в Helm-чарте. Подробнее о том, как это сделать, смотрите в документе Системные требования.
Примечание
Требования к хранилищу предполагают хранение большого объема тайлированных снимков в высоком разрешении (например, спутниковых снимков). Если вы не планируете хранить данные подобного рода, то требования к объему хранилища могут быть снижены.
Примечание
Содержание Helm-чарта, описанное в данном разделе, актуально для последней версии On-Premise (см. Релизы). Чтобы изучить параметры для более ранних версий, откройте values.yaml в GitHub и введите номер нужной версии комплекса (например, 1.18.0) в переключателе тегов слева.
-
Определите доменное имя для сервиса.
Пример:
gis-platform.example.com
2. Подготовьте инфраструктуру, необходимую для работы сервисов
Настройка PostgreSQL
Разместите кластер PostgreSQL с доменным именем gis-platform-postgresql.storage.example.local
в приватной сети. В этом руководстве предполагается, что кластер работает на стандартном порту 5432
.
Настройте кластер PostgreSQL для использования в качестве хранилища:
-
Подключитесь к кластеру от имени суперпользователя (обычно это
postgres
). -
Создайте пользователя базы данных, который будет использоваться для сервиса. Установите пароль для него.
create user gisplatform_superuser password 'GISPLATFORM_Db_Owner_Password_1234';
-
Создайте базу данных, принадлежащую этому пользователю.
create database onpremise_gisplatform owner gisplatform_superuser;
-
Установите расширение PostGIS.
\c onpremise_gisplatform CREATE EXTENSION postgis WITH SCHEMA public;
Настройка S3-хранилища
Разместите S3-совместимое хранилище (например, Ceph) с доменным именем gis-platform-s3.storage.example.local
в приватной сети. В этом руководстве предполагается, что хранилище работает на стандартном порту 80
.
Настройте S3-совместимое хранилище:
-
Создайте пользователя, который будет использоваться для сервиса. Запомните ключи доступа для этого пользователя.
Пример:
- Access key:
PHEI4AHTHEETHAHXEEGE
- Secret key:
aiw6ahlaeshahngaiJaebie6aeth0aiV2pucuey1
- Access key:
-
Создайте группу (region, zone group), которая будет использоваться для сервиса.
Пример:
US
-
Определите названия бакетов (buckets), которые будут использоваться для сервиса.
Пример:
- Бакет для основных данных:
spstatic
- Бакет для сессионных данных:
spsession
- Бакет для основных данных:
3. Установите сервис GIS Platform
-
Создайте конфигурационный файл для Helm. Подробное описание доступных параметров см. здесь.
Пример файла уже заполнен всеми необходимыми данными, собранными на предыдущих этапах.
values-gis-platform.yaml
dgctlDockerRegistry: docker.storage.example.local:5000 external_hostname: gis-platform.example.com spcore: admin: email: admin@example.com password: Oi3ha5eiL9OquooZ catalog: url: http://catalog-api key: CATALOG_KEY jwt: token_admin: xeep2nahjooGhaa3ke8ahy2moogh7ieB token_key: aihu6YaiM7owaequohpheizahvoh4go5 pg: host: gis-platform-postgresql.storage.example.local port: 5432 user: gisplatform_superuser password: GISPLATFORM_Db_Owner_Password_1234 dbname: onpremise_gisplatform replicaCount: 16 resources: requests: cpu: 800m memory: 4096Mi limits: cpu: 800m memory: 4096Mi s3: host: gis-platform-s3.storage.example.local access_key: PHEI4AHTHEETHAHXEEGE secret_key: aiw6ahlaeshahngaiJaebie6aeth0aiV2pucuey1 region: US bucket: spstatic session_bucket: spsession zookeeper: replicaCount: 2 resources: requests: cpu: 300m memory: 1024Mi limits: cpu: 500m memory: 2048Mi portal: replicaCount: 2 max_body_size: 100m resources: requests: cpu: 100m memory: 512Mi limits: cpu: 100m memory: 512Mi ingress: enabled: true className: nginx hosts: - host: gis-platform.example.com paths: - path: / pathType: Prefix tls: [] #- hosts: # - gis-platform.example.com # secretName: secret.tls
Где:
-
dgctlDockerRegistry
: эндпоинт вашего реестра Docker, в котором находятся образы сервисов программного комплекса 2ГИС. -
external_hostname
: FQDN для сервисов GIS-платформы. Веб-интерфейсы будут доступны по этому FQDN через HTTPS. -
spcore
: настройки бэкенд-сервиса SPCore.-
admin
: учетные данные администратора.email
: email администратора.password
: пароль администратора.
-
catalog
: настройки доступа к сервису Catalog APIs. Этот сервис обеспечивает взаимодействие с Geocoder API и Suggest API.url
: FQDN эндпоинта Catalog APIs. Значение должно быть задано в форматеhttp://catalog-api
, без слеша/
в конце. Этот URL должен быть доступен из всех подов вашего кластера Kubernetes.key
: отдельный сервисный токен для доступа к сервисам поиска. Подробнее см. в документации сервиса API Keys.
-
jwt
: настройки генерации веб-токенов JSON (JSON Web Tokens, JWT).token_admin
: токен администратора, с которым будет производиться вход в веб-интерфейс администратора. Значением должна быть случайная строка не короче 32 символов.token_key
: токен для генерации JWT cookies. Token for JWT cookies generation. Значением должна быть случайная строка не короче 32 символов.
-
pg
: настройки доступа к серверу PostgreSQL.host
: имя хоста или IP-адрес сервера.port
: порт, на котором слушает сервер.user
andpassword
: реквизиты для доступа к базе данных, указанной в параметреdbname
. Пользователь должен быть либо владельцем этой базы данных, либо суперпользователем.dbname
: имя базы данных.
-
replicaCount
: число реплик сервиса SPCore. -
resources
: настройки вычислительных ресурсов для сервиса. Чтобы узнать рекомендуемые значения ресурсов, см. Вычислительные ресурсы. -
s3
: настройки S3-совместимого хранилища (для хранения растровых изображений).access_key
: идентификатор ключа (S3 access key).secret_key
: секретный ключ (S3 secret key).host
: FQDN эндпоинта S3-совместимого хранилища.region
: регион S3.bucket
: имя бакета для хранения растровых изображений.session_bucket
: имя бакета для хранения эскизов этих изображений.
-
-
zookeeper
: настройки бэкенд-сервиса ZooKeeper.replicaCount
: число реплик сервиса ZooKeeper. Значение этой настройки может задаваться в пределах от 1 до 3.resources
: настройки вычислительных ресурсов для сервиса. Чтобы узнать рекомендуемые значения ресурсов, см. Вычислительные ресурсы.
-
portal
: настройки фронтенд-сервиса Portal.replicaCount
: число реплик сервиса Portal.max_body_size
: максимальный размер файла, который можно загрузить через веб-интерфейс Portal.resources
: настройки вычислительных ресурсов для сервиса. Чтобы узнать рекомендуемые значения ресурсов, см. Вычислительные ресурсы.
-
ingress
: конфигурация ресурса Ingress. Адаптируйте приведенную конфигурацию для соответствия используемому вами Ingress. URL, указанный в параметреingress.hosts.host
, должен быть доступен извне вашего кластера Kubernetes, чтобы пользователи из приватного сегмента сети могли получить доступ к ресурсам по этому URL.
-
-
Выполните установку GIS-платформы.
В результате этой операции произойдет следующее:
- Значение настройки
spcore.replicaCount
будет принудительно установлено равным1
. - Все сервисы будут сброшены до изначального состояния.
- Будут инициализированы требуемые структуры данных и будет выполнена миграция баз данных.
Выполните первую установку с помощью Helm, используя подготовленный конфигурационный файл
values-gis-platform.yaml
:helm upgrade --install --version=1.29.0 --atomic --wait-for-jobs --values ./values-gis-platform.yaml gis-platform 2gis-on-premise/gis-platform --set spcore.resetCluster=true
Дождитесь завершения операции. Когда первая установка будет завершена, в логах пода
spcore
будут присутствовать похожие сообщения:Now listening on: http://[::]:5051 Application started. Press Ctrl+C to shut down.
- Значение настройки
-
Выполните начальную конфигурацию GIS-платформы:
-
Задайте значения следующих переменных среды окружения:
export GIS_PLATFORM_URL=https://gis-platform.example.com # значение настройки external_hostname export GIS_PLATFORM_PASS=Oi3ha5eiL9OquooZ # значение настройки spcore.admin.password export GIS_PLATFORM_TILES_API=https://tiles-api.example.com export GIS_PLATFORM_TRAFFIC_API=https://traffic-proxy.example.com
-
Запустите конфигурационный скрипт:
helm pull --untar 2gis-on-premise/gis-platform cd gis-platform/gis-platform-config ./configure.sh
Примечание:
Начиная с версии 1.1.0 программного комплекса 2ГИС, можно передать скрипту
configure.sh
аргумент-k
.Этот аргумент позволяет пропустить проверку безопасности соединения при подключении по HTTPS. Таким образом, любые возможные ошибки, связанные с использованием недоверенных SSL-сертификатов (например, самоподписанных сертификатов) сервисами GIS-платформы, будут проигнорированы.
-
-
Проверьте работоспособность сервисов GIS-платформы:
-
Откройте адрес
https://gis-platform.example.com
в браузере (значение настройкиexternal_hostname
). -
Войдите в веб-интерфейс, используя следующие учетные данные:
- Имя пользователя: значение настройки
admin
. - Пароль: значение настройки
spcore.admin.password
.
- Имя пользователя: значение настройки
Вы должны успешно войти в веб-интерфейс.
-
-
После успешной попытки входа, выполните второй этап установки с помощью Helm, используя подготовленный конфигурационный файл
values-gis-platform.yaml
:helm upgrade --install --version=1.29.0 --atomic --wait-for-jobs --values ./values-gis-platform.yaml gis-platform 2gis-on-premise/gis-platform
Важное примечание:
Эта команда отличается от приведенной выше: в ней отсутствует аргумент
--set spcore.resetCluster=true
, так как сервисы были сброшены в исходное состояние ранее. Не используйте команду для выполнения начальной установки из шага 2.
Что дальше?
-
Узнайте, как обновить GIS-платформу:
-
Установите другие продукты программного комплекса 2ГИС: