Вы просматриваете документацию для Cozystack v1.5. Документация последней версии доступна по ссылке: v1.6.
Управляемый сервис MariaDB
Управляемый сервис MariaDB предоставляет мощное и широко используемое решение для работы с реляционными базами данных. Сервис позволяет без лишних сложностей создавать кластер MariaDB с репликацией и управлять им.
Сведения о развертывании
За работу управляемого сервиса отвечает mariadb-operator, который обеспечивает эффективное управление и бесперебойную эксплуатацию.
- Документация: https://mariadb.com/kb/en/documentation/
- GitHub: https://github.com/mariadb-operator/mariadb-operator
Параметр
storageClassпомечен в схеме чарта как неизменяемый. Описание контракта и список компонентов, обеспечивающих его соблюдение, приведены вdocs/storage-immutability.md.
Инструкции
Переключение экземпляра primary
kubectl edit mariadb <instance>
Измените:
spec:
replication:
primary:
podIndex: 1
Проверьте состояние:
NAME READY STATUS PRIMARY POD AGE
<instance> True Running app-db1-1 41d
Резервное копирование и восстановление приложения MariaDB
Рекомендуется использовать сценарий Cozystack на основе BackupClass / Plan /
RestoreJob со стратегией strategy.backups.cozystack.io/MariaDB, использующей штатный механизм оператора.
Нумерованное пошаговое руководство по всему процессу приведено в
examples/backups/mariadb. В нем рассмотрены
бакет, источник, стратегия, BackupClass, Plan, разовый BackupJob, а также манифесты
RestoreJob для восстановления на месте и восстановления в копию.
Блок чарта backup.* (mariadb-dump + Restic CronJob)
объявлен устаревшим и поддерживается только для обратной совместимости.
Существующие tenants могут продолжать использовать его без изменений. Для новых
развертываний следует использовать описанный выше сценарий на основе штатного механизма оператора.
Восстановление резервной копии, созданной устаревшим механизмом на основе Restic
Найдите снимок:
restic -r s3:s3.example.org/mariadb-backups/database_name snapshots
Выполните восстановление:
restic -r s3:s3.example.org/mariadb-backups/database_name restore latest --target /tmp/
Подробнее:
Известные проблемы
Репликация не завершается из-за различных ошибок
Репликация не завершается, если журнал
binlogочищенПока mariadb-operator не использует
mariadbbackupдля начальной загрузки узла (эта возможность еще не реализована), выполните следующие действия вручную, чтобы устранить проблему: https://github.com/mariadb-operator/mariadb-operator/issues/141#issuecomment-1804760231Поврежденные индексы Иногда индексы на экземпляре primary могут быть повреждены. Их можно восстановить с экземпляра replica:
mysqldump -h <slave> -P 3306 -u<user> -p<password> --column-statistics=0 <database> <table> ~/tmp/fix-table.sql mysql -h <master> -P 3306 -u<user> -p<password> <database> < ~/tmp/fix-table.sql
Параметры
Общие параметры
| Имя | Описание | Тип | Значение |
|---|---|---|---|
replicas | Количество реплик MariaDB. | int | 2 |
resources | Явная конфигурация CPU и памяти для каждой реплики MariaDB. Если параметр не задан, применяется пресет из resourcesPreset. | object | {} |
resources.cpu | CPU, доступный каждой реплике. | quantity | "" |
resources.memory | Память (RAM), доступная каждой реплике. | quantity | "" |
resourcesPreset | Пресет ресурсов по умолчанию, используемый, если параметр resources не задан. | string | t1.nano |
size | Размер PVC для данных приложения. | quantity | 10Gi |
storageClass | StorageClass для хранения данных. | string | "" |
external | Включить доступ извне кластера. | bool | false |
version | Версия MariaDB в формате major.minor для развертывания. | string | v11.8 |
Параметры приложения
| Имя | Описание | Тип | Значение |
|---|---|---|---|
users | Карта конфигурации пользователей. | map[string]object | {} |
users[name].password | Пароль пользователя. | string | "" |
users[name].maxUserConnections | Максимальное количество подключений. | int | 0 |
databases | Карта конфигурации баз данных. | map[string]object | {} |
databases[name].roles | Роли, назначенные пользователям. | object | {} |
databases[name].roles.admin | Список пользователей с правами администратора. | []string | [] |
databases[name].roles.readonly | Список пользователей с правами только на чтение. | []string | [] |
Параметры резервного копирования (УСТАРЕЛО)
| Имя | Описание | Тип | Значение |
|---|---|---|---|
backup | УСТАРЕЛО: Конфигурация резервного копирования. Рекомендуется использовать сценарий на основе BackupClass / Plan из examples/backups/mariadb/. | object | {} |
backup.enabled | УСТАРЕЛО: Включение регулярного резервного копирования (по умолчанию: false). | bool | false |
backup.s3Region | УСТАРЕЛО: Регион AWS S3, в котором хранятся резервные копии. | string | us-east-1 |
backup.s3Bucket | УСТАРЕЛО: Бакет S3 для хранения резервных копий. | string | s3.example.org/mariadb-backups |
backup.schedule | УСТАРЕЛО: Расписание Cron для автоматического резервного копирования. | string | 0 2 * * * |
backup.cleanupStrategy | УСТАРЕЛО: Стратегия хранения и удаления старых резервных копий. | string | --keep-last=3 --keep-daily=3 --keep-within-weekly=1m |
backup.s3AccessKey | УСТАРЕЛО: Ключ доступа для аутентификации в S3. | string | <your-access-key> |
backup.s3SecretKey | УСТАРЕЛО: Секретный ключ для аутентификации в S3. | string | <your-secret-key> |
backup.resticPassword | УСТАРЕЛО: Пароль для шифрования резервных копий Restic. | string | <password> |
Примеры параметров и справочник
resources и resourcesPreset
resources задает явную конфигурацию CPU и памяти для каждой реплики.
Если оставить параметр пустым, применяется пресет, указанный в resourcesPreset.
resources:
cpu: 4000m
memory: 4Gi
resourcesPreset задает именованную конфигурацию ресурсов CPU и памяти для каждой реплики.
Этот параметр игнорируется, если задано соответствующее значение resources.
Пресеты используют принятую в облачных платформах схему именования <series>.<size>. Пять серий охватывают весь диапазон соотношений CPU и памяти (t1 1:0.5, c1 1:1, s1 1:2, u1 1:4, m1 1:8), а каждая серия содержит восемь размеров (от nano до 4xlarge). Прежние одноуровневые имена (nano, micro, small, medium, large, xlarge, 2xlarge) по-прежнему поддерживаются как устаревшие псевдонимы соответствующих типов экземпляров с соотношением 1:1.
Полная матрица размеров и сопоставление прежних имен с типами экземпляров приведены в
docs/operations/resource-presets.md.
users
users:
user1:
maxUserConnections: 1000
password: hackme
user2:
maxUserConnections: 1000
password: hackme
databases
databases:
myapp1:
roles:
admin:
- user1
readonly:
- user2