Настройка базы данных
В этом документе описывается, как настроить базу данных, необходимую для Tekton Results.
В настоящее время мы поддерживаем только подключение к внешним базам данных. Это связано с тем, что:
- Встроенная база данных не имеет важных для production функций, таких как резервное копирование, мониторинг, высокая доступность и расширенные возможности управления. Она предоставляет только базовые функции хранения и запросов, поэтому не подходит для production-сред.
- Внешние базы данных предлагают полный набор возможностей корпоративного уровня, включая автоматическое резервное копирование, мониторинг производительности, масштабирование и профессиональную поддержку, что необходимо для production-развертываний.
- Наш продукт 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
- Параметры подключения к базе данных (host, port, имя базы данных, параметры SSL) настраиваются в пользовательском ресурсе TektonConfig в
spec.result
Справочник параметров конфигурации
Допустимые значения
db_sslmodeописаны здесь https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION.
Базовая конфигурация
Для базовой настройки внешней базы данных без SSL выполните следующие шаги:
1. Создайте учетные данные базы данных
Обязательные поля в Secret:
Команда для создания Secret:
Пример YAML для Secret:
2. Настройте ресурс TektonConfig
В этом документе перечислены только поля конфигурации, связанные с базой данных. Полный список полей см. в Quick Start.
3. Проверьте конфигурацию
В этом Quick Start рассматривается только базовая конфигурация. Для production-сред с SSL, расширенной безопасностью или пользовательскими CA-сертификатами см. раздел Расширенная конфигурация ниже.
Расширенная конфигурация
Настройка 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 не смогут запуститься. Подробные шаги настройки см. в разделе Настройка пользовательских CA-сертификатов ниже.
Настройка пользовательских CA-сертификатов
При использовании режимов SSL, требующих проверки сертификата (require, verify-ca, verify-full), необходимо предоставить CA-сертификат, который подписал сертификат сервера базы данных. Наиболее распространенный подход — сохранить CA-сертификат в ConfigMap и смонтировать его в pods 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 server, и retention policy agent будут иметь доступ к CA-сертификату
Операции
Обновление конфигурации базы данных
После изменения конфигурации базы данных необходимо перезапустить компоненты Tekton Results, чтобы изменения вступили в силу.
Вариант 1: перезапустить определенные deployments
Вариант 2: пересоздать ресурс TektonConfig
Проверьте изменения:
Если вы обновляете поле db_sslmode, может потребоваться пересоздать ресурс TektonConfig, чтобы изменения вступили в силу.
Устранение неполадок
Распространенные проблемы
-
Connection refused:
- Проверьте host и port базы данных
- Проверьте сетевое подключение
- Убедитесь, что база данных запущена
-
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 на основе этого Secret и создать новый secret в namespace, где расположен экземпляр Tekton Results.
Если требуется задать sslmode, установите db_sslmode в секции spec.result TektonConfig в allow, prefer и т. д.
Для получения дополнительных сведений о параметрах и требованиях развертывания PostgreSQL см. PostgreSQL Deployment Documentation.