Рекомендации по использованию#

В этом разделе приводятся рекомендации по работе с сервисом разработки GitLab.

Варианты запуска сервиса#

  • Одиночный экземпляр сервиса, развёрнутый на одном экземпляре виртуальной машины в выбранной зоне доступности.

Подключение к сервису#

После успешного запуска адреса и порты, которые прослушивает сервис GitLab, можно найти на его странице на вкладке Информация. По умолчанию сервис GitLab прослушивает следующие порты:

Сервис

Протокол

Порт

Комментарий

API

HTTP

80

Если была выбрана схема http 1

API

HTTPS

443

Если была выбрана схема https 2

Container Registry

HTTP

5050

Если была выбрана схема http 1

Container Registry

HTTPS

5050

Если была выбрана схема https 2

1(1,2)

Схема http выбирается по умолчанию, если при создании сервиса не был установлен внешний балансировщик нагрузки.

2(1,2)

Схема https активируется, если при создании сервиса был установлен внешний балансировщик нагрузки.

Доступ к сервису из интернета#

GitLab обрабатывает чувствительные данные: учётные записи пользователей, репозитории, вебхуки, CI/CD-токены и другие секреты. Если соединение не зашифровано, злоумышленники могут перехватить передаваемые данные. Кроме того, большинство технологий единого входа (Single Sign-On, SSO) требуют использования HTTPS. Например, Google OAuth не позволяет осуществлять авторизацию по HTTP, из-за чего интеграция с ним может оказаться невозможна. Некоторые сервисы CI/CD, а также внешние вебхуки отказываются работать с незащищёнными HTTP-серверами. Поэтому мы рекомендуем запускать сервис GitLab только с включённым протоколом HTTPS, особенно если к сервису предполагается публичный доступ извне.

GitLab по умолчанию поддерживает автоматическое получение SSL-сертификата через сервис Let’s Encrypt. Для этого необходимо, чтобы:

  • доступ к GitLab осуществлялся по HTTPS;

  • доменное имя GitLab указывало на внешний IP-адрес экземпляра GitLab.

Публичный доступ к сервису из интернета по HTTPS в К2 Облаке обеспечивается за счёт создания вместе с ним внешнего балансировщика нагрузки. Кроме того, в облаке создаётся специальная DNS-зона, в которой для сервиса GitLab регистрируется CNAME-запись. В соответствии с этой записью трафик направляется на DNS-имя балансировщика нагрузки, для которого настроена соответствующая A-запись.

Благодаря такой конфигурации Let’s Encrypt может получить публичный доступ к сервису из интернета, подтвердить владение доменом и выпустить сертификат.

Мониторинг сервиса#

Для мониторинга сервиса мы рекомендуем включить облачный сервис мониторинга Prometheus. Если вы хотите использовать свой собственный сервер мониторинга для контроля состояния и работоспособности сервиса GitLab, то можете воспользоваться встроенными в GitLab экспортерами:

Экспортер

Протокол

Порт

Эндпоинт

gitlab_exporter

TCP

9168

http://<private_ip>:9168/metrics

node_exporter

TCP

9100

http://<private_ip>:9100/metrics

postgres_exporter

TCP

9187

http://<private_ip>:9187/metrics

redis_exporter

TCP

9121

http://<private_ip>:9121/metrics