Конфигурация базы данных
В этом документе описывается, как настроить базу данных, необходимую для Tekton Results.
В настоящее время мы поддерживаем только подключение к внешним базам данных. Это связано с тем, что:
- Встроенная база данных не имеет важных производственных функций, таких как резервное копирование, мониторинг, высокая доступность и расширенные возможности управления. Она предоставляет только базовое хранение и возможность запросов, что делает её непригодной для производственной среды.
- Внешние базы данных предлагают полный набор корпоративных функций, включая автоматическое резервное копирование, мониторинг производительности, масштабируемость и профессиональную поддержку, которые необходимы для производственных развертываний.
- Наш продукт Data Services уже предоставляет комплексные возможности управления PostgreSQL.
Содержание
ТребованияТребования к кластеруТребования к базе данныхОбзор конфигурацииСправочник параметров конфигурацииБазовая конфигурация1. Создайте учетные данные базы данных2. Настройте ресурс TektonResult3. Проверьте конфигурациюРасширенная конфигурацияНастройка SSLНастройка пользовательских CA-сертификатовШаг 1: Создайте ConfigMap с CA-сертификатомШаг 2: Настройте TektonResult с монтированием томаОперацииОбновление конфигурации базы данныхУстранение неполадокРаспространённые проблемыКоманды для проверкиИспользование PostgreSQL из Data ServicesТребования
Требования к кластеру
- В кластере должен быть установлен Tekton Operator.
Требования к базе данных
Версия:
- PostgreSQL 12 или выше
- Рекомендуется использовать более новые версии для более длительной поддержки
Настройка базы данных:
- База данных должна уже существовать
- База данных должна быть пустой (Tekton Results автоматически создаст необходимые таблицы)
- Убедитесь, что у пользователя базы данных есть права на создание таблиц
Команда создания базы данных:
Обзор конфигурации
Tekton Results поддерживает использование внешних баз данных PostgreSQL. Конфигурация разделена на две части:
- Учетные данные базы данных (имя пользователя и пароль) хранятся в Kubernetes Secrets
- Параметры подключения к базе данных (хост, порт, имя базы, настройки SSL) настраиваются в пользовательском ресурсе TektonResult
Справочник параметров конфигурации
Допустимые значения для
db_sslmodeописаны здесь https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION.
Базовая конфигурация
Для базовой настройки внешней базы данных без SSL выполните следующие шаги:
1. Создайте учетные данные базы данных
Обязательные поля в Secret:
Команда создания секрета:
Пример YAML секрета:
2. Настройте ресурс TektonResult
В этом документе перечислены только поля конфигурации, связанные с базой данных. Для полного списка полей смотрите 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: Настройте TektonResult с монтированием тома
Чтобы сделать CA-сертификат доступным в контейнерах, необходимо настроить ресурс TektonResult с дополнительными options для монтирования ConfigMap:
С этой конфигурацией:
- CA-сертификат будет доступен в контейнерах по пути
/etc/tls/db/ca.crt - Установите
db_sslrootcertв/etc/tls/db/ca.crt, чтобы соответствовать пути монтирования - И API-сервер, и агент политики удержания будут иметь доступ к CA-сертификату
Операции
Обновление конфигурации базы данных
После изменения конфигурации базы данных необходимо перезапустить компоненты Tekton Results, чтобы изменения вступили в силу.
Вариант 1: Перезапустить конкретные деплойменты
Вариант 2: Воссоздать ресурс TektonResult
Проверьте изменения:
Если вы обновляете поле db_sslmode, возможно, потребуется воссоздать ресурс TektonResult, чтобы изменения вступили в силу.
Устранение неполадок
Распространённые проблемы
-
Connection refused:
- Проверьте хост и порт базы данных
- Проверьте сетевое соединение
- Убедитесь, что база данных запущена
-
Authentication failed:
- Проверьте имя пользователя и пароль в Secret
- Проверьте права пользователя базы данных
-
Ошибки 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 в TektonResult в значения allow, prefer и т.п.
Для получения дополнительной информации о параметрах и требованиях развертывания PostgreSQL смотрите PostgreSQL Deployment Documentation.