Настройка Redis, PostgreSQL и учетных данных аккаунта
В этом документе описывается, как настроить учетные данные, необходимые для экземпляров GitLab.
Содержание
ТребованияУчетные данные RedisТребованияФормат учетных данныхОбновление учетных данныхИспользование Alauda Cache Service for Redis OSSУчетные данные PostgreSQLТребованияФормат учетных данныхsslmodeОбновление учетных данныхИспользование PostgreSQL, предоставляемого Data ServicesУчетные данные аккаунта GitLabУчетные данные для Object StorageТребования
- Этот документ применим к версиям GitLab 17 и выше, предоставляемым платформой. Он отделен от платформы и основан на технологиях, таких как Operator.
Учетные данные Redis
Требования
GitLab предъявляет следующие требования к режиму развертывания и версии Redis:
- Поддерживаются режимы развертывания
StandaloneиSentinel, но режим RedisClusterне поддерживается - Требуется версия Redis 6.2 или выше
Формат учетных данных
Создайте Secret в namespace, где планируется развертывание экземпляра GitLab, выберите тип Opaque и добавьте и заполните следующие поля в конфигурации:
- Если присутствуют обе конфигурации sentinel и standalone, приоритет имеет конфигурация sentinel.
- При развертывании с шаблонами высокой доступности, если настроен standalone Redis, ответственность за обеспечение высокой доступности Redis лежит на пользователе.
Пример для Standalone
Пример для Sentinel
Обновление учетных данных
Если необходимо изменить информацию для подключения к Redis после развертывания экземпляра GitLab, нужно напрямую обновить ресурс экземпляра GitLab, а не изменять содержимое учетных данных. Для конкретных операций смотрите Configuring Redis Access Credentials.
Использование Alauda Cache Service for Redis OSS
Сервис Redis может предоставляться через Alauda Cache Service for Redis OSS, обратите внимание на следующие важные требования:
- Выбирайте версию Redis 7.2 или выше
- Для типа архитектуры выбирайте sentinel mode
- Для шаблона параметров выбирайте шаблон с RDB persistence, например
system-rdb-redis-7.2-sentinel - Включите сохранение данных с квотой хранилища не менее 2G
- В сценариях с несколькими сетевыми интерфейсами Redis sentinel выбирает IP по умолчанию узла для инициализации адреса доступа каждого узла Redis, поэтому не поддерживается доступ к узлам с не-стандартным IP + открытым портом. В этом случае рекомендуется использовать метод доступа LoadBalancer для создания экземпляров Redis. Подробнее см. документацию по функционалу Alauda Cache Service for Redis OSS.
При создании экземпляра Redis автоматически создается Secret с информацией для подключения, который можно использовать напрямую для развертывания GitLab. Этот ресурс Secret можно отфильтровать по метке middleware.instance/type: Redis.
Если экземпляр Redis и экземпляр GitLab находятся в разных namespace, необходимо скопировать ресурс Secret в namespace, где расположен экземпляр GitLab.
Для получения дополнительных параметров развертывания Redis и требований к высокой доступности смотрите Redis Deployment Documentation.
Использование Alauda Cache Service for Redis OSS
Сервис Redis может предоставляться через Alauda Cache Service for Redis OSS. В некоторых особых сценариях необходимо учитывать ограничения.
- В сценариях с несколькими сетевыми интерфейсами Redis sentinels выбирают IP по умолчанию узла для инициализации адреса доступа каждого узла Redis, поэтому не поддерживается доступ к не-стандартному IP узла + открытому порту. В этом случае рекомендуется использовать метод доступа LoadBalancer для создания экземпляров Redis. Подробнее см. документацию по функционалу Alauda Cache Service for Redis OSS.
Учетные данные PostgreSQL
Требования
GitLab предъявляет следующие требования к версиям PostgreSQL:
- GitLab 17.z требует PostgreSQL версии 14.z
- GitLab 18.z требует PostgreSQL версии 16.z
Формат учетных данных
Создайте Secret в namespace, где планируется развертывание экземпляра GitLab, выберите тип Opaque и добавьте и заполните следующие поля в конфигурации:
Пример YAML:
Как создать базу данных на экземпляре PG
Подключитесь к экземпляру PG с помощью psql cli и выполните команду для создания базы данных
Создание отдельной базы данных для кластера gitaly
В режиме высокой доступности компонент gitaly должен быть настроен в режиме кластера и требует отдельной базы данных для хранения метаданных gitaly. Необходимо создать еще один Secret для хранения информации подключения к базе данных с полями, аналогичными описанным выше.
sslmode
sslmode — параметр, управляющий безопасностью соединения между сервисом GitLab и базой данных PostgreSQL. Доступные опции:
enable: включить SSL-соединениеdisable: отключить SSL-соединение
При использовании Alauda support for PostgreSQL параметр sslmode должен быть установлен в enable.
При использовании внешнего PostgreSQL значение sslmode зависит от вашей конфигурации PostgreSQL.
Обновление учетных данных
Если необходимо изменить информацию для подключения к PostgreSQL после развертывания экземпляра GitLab, нужно напрямую обновить ресурс экземпляра GitLab, а не изменять содержимое учетных данных. Для конкретных операций смотрите Configure PostgreSQL Credentials.
Использование PostgreSQL, предоставляемого Data Services
Data Services поддерживает развертывание экземпляров PostgreSQL, которые можно использовать для развертывания GitLab. При создании экземпляра PostgreSQL учитывайте следующие важные требования:
- Выбирайте версию PostgreSQL, соответствующую версии GitLab, например, при развертывании GitLab 17.z необходимо выбрать PostgreSQL 14.z
- Квота хранилища должна быть не менее 5Gi
При создании экземпляра PostgreSQL автоматически создается Secret с информацией для подключения. Этот ресурс Secret можно отфильтровать по метке middleware.instance/type: PostgreSQL.
Этот Secret содержит информацию host, port, username, password. Необходимо дополнить информацию database и sslmode (установить в enable) на основе этого Secret и создать новый Secret в namespace, где расположен экземпляр GitLab.
Для получения дополнительных параметров развертывания PostgreSQL и требований смотрите PostgreSQL Deployment Documentation.
Учетные данные аккаунта GitLab
Создайте Secret в namespace, где планируется развертывание экземпляра GitLab, выберите тип Opaque и добавьте и заполните следующие поля в конфигурации:
Учетные данные для Object Storage
Подготовьте файл конфигурации MinIO с именем rails-storage.yaml со следующим содержимым:
provider— тип объектного хранилища, для MinIO используется фиксированное значение AWSregion— регион объектного хранилища, для MinIO используется фиксированное значение us-east-1aws_access_key_id— идентификатор ключа доступа к объектному хранилищуaws_secret_access_key— секретный ключ доступа к объектному хранилищуendpoint— адрес доступа к объектному хранилищуpath_style— метод доступа к объектному хранилищу, здесь используется фиксированное значение true
Сохраните файл конфигурации как secret в кластере, при этом namespace должен совпадать с namespace экземпляра GitLab:
Подробнее смотрите в разделе Using Object Storage for LFS Files.