Конфигурация базы данных
В этом документе описывается, как настроить базу данных, необходимую для Tekton Results.
В настоящее время мы поддерживаем только подключение к внешним базам данных. Это связано с тем, что:
- Встроенная база данных не обладает необходимыми для продакшена функциями, такими как резервное копирование, мониторинг, высокая доступность и расширенные возможности управления. Она предоставляет только базовое хранение и возможность запросов, что делает её непригодной для продакшен-сред.
- Внешние базы данных предлагают полный набор корпоративных функций, включая автоматическое резервное копирование, мониторинг производительности, масштабирование и профессиональную поддержку, что критично для продакшен-развертываний.
- Наш продукт Data Services уже предоставляет полноценные возможности управления PostgreSQL.
Содержание
ТребованияТребования к кластеруТребования к базе данныхОбзор конфигурацииСправочник параметров конфигурацииБазовая конфигурация1. Создайте учетные данные базы данных2. Настройте ресурс TektonConfig3. Проверьте конфигурациюРасширенная конфигурацияНастройка SSLНастройка пользовательских CA-сертификатовШаг 1: Создайте ConfigMap с CA-сертификатомШаг 2: Настройте TektonConfig с монтированием томаОперацииОбновление конфигурации базы данныхУстранение неполадокРаспространённые проблемыКоманды для проверкиИспользование PostgreSQL из Data ServicesТребования
Требования к кластеру
- В кластере должен быть установлен Tekton Operator.
Требования к базе данных
Версия:
- PostgreSQL 12 или выше
- Рекомендуется использовать более новые версии для более длительной поддержки
Настройка базы данных:
- База данных должна уже существовать
- База данных должна быть пустой (Tekton Results автоматически создаст необходимые таблицы)
- Убедитесь, что у пользователя базы данных есть права на создание таблиц
Команда создания базы данных:
Обзор конфигурации
Tekton Results поддерживает использование внешних баз данных PostgreSQL. Конфигурация разделена на две части:
- Учетные данные базы данных (имя пользователя и пароль) хранятся в Kubernetes Secrets
- Параметры подключения к базе данных (хост, порт, имя базы, настройки SSL) настраиваются в пользовательском ресурсе TektonConfig в разделе
spec.result
Справочник параметров конфигурации
Допустимые значения для
db_sslmodeописаны здесь https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION.
Базовая конфигурация
Для базовой настройки внешней базы данных без SSL выполните следующие шаги:
1. Создайте учетные данные базы данных
Обязательные поля в секрете:
Команда создания секрета:
Пример YAML секрета:
2. Настройте ресурс TektonConfig
В этом документе перечислены только поля конфигурации, связанные с базой данных. Для полного списка полей смотрите Quick Start.
3. Проверьте конфигурацию
Этот Quick Start охватывает только базовую конфигурацию. Для продакшен-сред с SSL, расширенной безопасностью или пользовательскими CA-сертификатами смотрите раздел Advanced Configuration ниже.
Расширенная конфигурация
Настройка SSL
Если требуется защищенное подключение к базе данных, можно настроить параметры, связанные с SSL:
Руководство по выбору режима SSL:
Описание режимов SSL
Разница между verify-ca и verify-full зависит от политики корневого CA. Если используется публичный CA, verify-ca допускает подключение к серверу, зарегистрированному кем-то другим в CA. В этом случае всегда следует использовать verify-full. Если используется локальный CA или самоподписанный сертификат, verify-ca часто обеспечивает достаточную защиту.
Важно: При использовании режимов SSL require, verify-ca или verify-full необходимо предоставить CA-сертификат, который подписал сертификат сервера базы данных. Без правильной настройки CA-сертификата компоненты Tekton Results не смогут запуститься. Подробные шаги настройки смотрите в разделе Configuring Custom CA Certificates ниже.
Настройка пользовательских CA-сертификатов
При использовании режимов SSL, требующих проверки сертификата (require, verify-ca, verify-full), необходимо предоставить CA-сертификат, подписавший сертификат сервера базы данных. Наиболее распространенный способ — сохранить CA-сертификат в ConfigMap и смонтировать его в поды Tekton Results.
Шаг 1: Создайте ConfigMap с CA-сертификатом
Если у вас есть файл CA-сертификата с именем root.crt, создайте ConfigMap:
Шаг 2: Настройте TektonConfig с монтированием тома
Чтобы сделать CA-сертификат доступным в контейнерах, необходимо настроить ресурс TektonConfig с дополнительными options в spec.result для монтирования ConfigMap:
С этой конфигурацией:
- CA-сертификат будет доступен в контейнерах по пути
/etc/tls/db/ca.crt - Установите
db_sslrootcertв/etc/tls/db/ca.crtдля соответствия пути монтирования - И API-сервер, и агент политики удержания будут иметь доступ к CA-сертификату
Операции
Обновление конфигурации базы данных
После изменения конфигурации базы данных необходимо перезапустить компоненты Tekton Results, чтобы изменения вступили в силу.
Вариант 1: Перезапустить конкретные деплойменты
Вариант 2: Воссоздать ресурс TektonConfig
Проверка изменений:
Если вы обновляете поле db_sslmode, возможно, потребуется воссоздать ресурс TektonConfig, чтобы изменения вступили в силу.
Устранение неполадок
Распространённые проблемы
-
Connection refused:
- Проверьте хост и порт базы данных
- Проверьте сетевое соединение
- Убедитесь, что база данных запущена
-
Authentication failed:
- Проверьте имя пользователя и пароль в секрете
- Проверьте права пользователя базы данных
-
Ошибки SSL-сертификата:
- Проверьте правильность монтирования CA-сертификата
- Проверьте конфигурацию режима SSL
- Убедитесь, что путь к сертификату совпадает с путем монтирования
Команды для проверки
Использование PostgreSQL из Data Services
Data Services поддерживает развертывание экземпляров PostgreSQL, которые можно использовать для Tekton Results. При создании экземпляра PostgreSQL обратите внимание на следующие важные требования:
- Выберите версию PostgreSQL, соответствующую версии Tekton Results, например, PostgreSQL 12.x или выше.
- Квота хранилища не должна быть меньше 5Gi
При создании экземпляра PostgreSQL автоматически создается Secret с информацией для подключения. Этот ресурс Secret можно отфильтровать по метке middleware.instance/type: PostgreSQL.
Этот Secret содержит информацию host, port, username, password. Вам нужно дополнить информацию о database на основе этого секрета и создать новый секрет в namespace, где расположен экземпляр Tekton Results.
Если необходимо установить sslmode, задайте db_sslmode в разделе spec.result ресурса TektonConfig в значение allow или prefer и т.п.
Для получения дополнительной информации о параметрах и требованиях к развертыванию PostgreSQL смотрите PostgreSQL Deployment Documentation.