Resource nubes_mariadb · v1.0.0 · Service ID: 115 · Service Name: Mariadb¶
Manual · Create params · Modify params · Output params · Operations · Example
Сервис Mariadb (nubes_mariadb). См. Create params для списка параметров.
Справка (MAN)
Инструкция по развертыванию MariaDB через платформу¶
1. Общая информация¶
MariaDB — реляционная база данных, совместимая с MySQL. Разворачивается через mariadb-operator в Kubernetes.
Доступные операции с кластером¶
- create — создание кластера
- delete — удаление кластера
- suspend — остановка кластера (под реально останавливается, ресурсы не потребляются)
- resume — запуск ранее остановленного кластера
- modify — изменение параметров кластера
- reconcile — синхронизация состояния инстанса с платформой
Доступные операции с базами данных¶
- create_database — создание базы данных
- delete_database — удаление базы данных
Доступные операции с пользователями¶
- create_user — создание пользователя
- delete_user — удаление пользователя
2. Параметры создания кластера¶
Платформа для развертывания (startupConfiguration.resourceRealm)¶
Среда, в которой будет развёрнут кластер.
Конфигурация ресурсов (clusterConfiguration)¶
JSON-объект:
* cpu — квота CPU пода в миликорах (1000 = 1 vCPU). Пример: 500
* memory — квота памяти пода в мегабайтах. Пример: 512
* disk — размер диска в гигабайтах. Пример: 10
* replicas — количество реплик. Сервис работает в режиме одного primary-узла (Galera выключена), значение 0 эквивалентно остановке кластера.
Версия MariaDB (mariadbConfiguration.version)¶
Поддерживаются только две версии: 8.4.0 и 9.4.0.
Внешний доступ (accessConfiguration)¶
JSON-объект:
* masterIpSpace — имя ipSpace для выделения внешнего IP. Укажите no-needed, если внешний адрес не требуется.
* masterAccessList — список IP/подсетей, которым разрешён доступ к порту 3306 снаружи. Пустой список — доступ не ограничен на уровне firewall (в рамках выделенного ipSpace).
Резервное копирование (backupConfiguration)¶
JSON-объект:
* s3Uid — идентификатор S3-пользователя/квоты для бэкапов.
* schedule — cron-выражение расписания бэкапов. По умолчанию 0 0 * * * (раз в сутки в полночь).
* retain — время хранения бэкапов в часах (не в днях!). По умолчанию 7 — то есть 7 часов. При суточном расписании этого значения обычно недостаточно, чтобы между двумя бэкапами всегда оставалась хотя бы одна валидная копия — рекомендуется указывать retain явно, с запасом (например 720 = 30 суток).
Важно: расписание и срок хранения бэкапов задаются только при создании кластера. Оператор MariaDB не позволяет изменить cron-расписание бэкапа после создания (поле
spec.schedule.cronнеизменяемо на уровне admission-вебхука самого оператора) — поэтому эти параметры недоступны для изменения черезmodify.Восстановление из бэкапа пока не реализовано как самостоятельная операция платформы. Бэкапы физически хранятся в S3-бакете инстанса (
technicals3backup-<instanceUid>, префиксmariadb/backups/). Если нужно восстановить данные из бэкапа — бэкап нужно скачать из S3 и применить к базе вручную (например черезmariabackup/mariadb-backuprestore или соответствующий инструмент).
Автомасштабирование диска (autoscaleConfiguration)¶
JSON-объект:
* enabled — включить автоматическое расширение диска при исчерпании места.
* quota — максимальный размер диска, до которого разрешено автоматическое расширение (не может быть меньше clusterConfiguration.disk).
* percent, schedule — параметры триггера автомасштабирования.
3. Параметры модификации кластера¶
Все параметры модификации, кроме версии, можно как увеличивать, так и уменьшать (кроме диска — см. ниже) — система подставит текущие сохранённые значения, если их не менять.
Конфигурация ресурсов (clusterConfiguration)¶
cpu,memory— можно менять в любую сторону.disk— можно только увеличивать, уменьшение уже выделенного размера не поддерживается.replicas—0останавливает кластер тем же образом, что иsuspend(альтернативный способ временной остановки черезmodify).
Версия MariaDB (mariadbConfiguration.version)¶
Можно только повышать версию (8.4.0 → 9.4.0). Попытка понизить версию будет отклонена с явной ошибкой ещё до применения изменений.
Внешний доступ (accessConfiguration)¶
Можно включить внешний доступ (было no-needed → указали реальный masterIpSpace), изменить список разрешённых IP, либо полностью отключить внешний доступ (masterIpSpace: no-needed) — в этом случае внешний Service, DNS-запись и правило firewall будут корректно откреплены и удалены.
Резервное копирование¶
Не передаётся при модификации — расписание и срок хранения бэкапов фиксируются на этапе create (см. п.2).
4. Параметры создания базы данных (create_database)¶
Имя базы данных (dbName)¶
Строка с именем новой базы. Не может совпадать с зарезервированными системными именами: mysql, sys, information_schema, performance_schema. База с таким же именем не должна уже существовать в кластере.
5. Параметры удаления базы данных (delete_database)¶
Имя базы данных (dbName)¶
База должна существовать в кластере. Удаление будет отклонено, если к базе всё ещё привязаны пользователи — сначала нужно снять доступ (delete_user) у всех пользователей, ссылающихся на эту базу.
6. Параметры создания пользователя (create_user)¶
Имя пользователя (username)¶
Не может быть root, healthcheck или mariadb.sys — эти имена зарезервированы платформой/оператором.
Пароль (password)¶
Пароль для подключения от имени создаваемого пользователя.
Базы данных (dbName)¶
JSON-массив вида [{"dbname": "имя_базы"}] — список баз, к которым выдаётся полный доступ (ALL PRIVILEGES). Все перечисленные базы должны уже существовать в кластере (создать заранее через create_database).
Разрешённые хосты (accessHosts)¶
MySQL host-паттерн, с которого разрешено подключение под этим пользователем (например % — без ограничений, или конкретная подсеть). Определяет user@host в самой MariaDB — если указать слишком узкое значение, подключение снаружи ожидаемого диапазона будет отклонено сервером на уровне аутентификации, даже если сеть/firewall пропускают трафик.
7. Параметры удаления пользователя (delete_user)¶
Имя пользователя (username)¶
Пользователь должен существовать в кластере. root/healthcheck/mariadb.sys удалить нельзя.
8. Выходные параметры¶
internalConnect¶
Внутренний адрес для подключения из сервисов, работающих в том же кластере Kubernetes:
externalConnect¶
Присутствует в выходных данных, только если был запрошен внешний доступ (accessConfiguration.masterIpSpace отличен от no-needed). Если внешний доступ не запрошен или был отключён через modify — этого блока не будет вовсе (пустой блок в состояние не пишется):
9. Пример подключения¶
9.1 Изнутри кластера / того же namespace¶
9.2 Через port-forward¶
Важно: после port-forward подключайтесь именно по 127.0.0.1, а не localhost:
Клиент mysql/mariadb при указании -h localhost игнорирует TCP/порт и всегда пытается подключиться через локальный unix-сокет (/var/lib/mysql/mysql.sock), которого на вашей машине нет — подключение упадёт с ERROR 2002 (HY000): Can't connect to local server through socket. 127.0.0.1 форсирует реальное TCP-подключение. Также не забывайте -P (порт) с заглавной буквы — строчная -p относится к паролю.
9.3 Снаружи (внешний адрес)¶
Доступно только если при создании/модификации был указан реальный masterIpSpace и подключающийся IP входит в accessConfiguration.masterAccessList (или список пуст).
Где:
* <username> — имя пользователя
* <password> — пароль пользователя
10. Дополнительная информация¶
- Расписание бэкапов (
backupConfiguration.schedule/retain) задаётся один раз при создании и не может быть изменено позже — ограничение самогоmariadb-operator, а не платформы. - Версию MariaDB можно только повышать, откат на более старую версию не поддерживается.
- Размер диска можно только увеличивать.
suspendреально останавливает под (масштабирование StatefulSet в 0 реплик), а не просто помечает кластер как приостановленный — расход ресурсов CPU/RAM/диска (кроме уже занятого диска) прекращается.- При отключении внешнего доступа через
modify(masterIpSpace: no-needed) внешний Service, DNS-запись и правило firewall удаляются, аexternalConnectпропадает из выходных данных. - Самостоятельного восстановления из бэкапа (операции
restore) пока нет. Бэкапы лежат в S3 инстанса — восстановление данных в существующий кластер выполняется вручную, скачиванием и применением бэкапа самим владельцем инстанса.