Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
86 lines
2.5 KiB
Markdown
86 lines
2.5 KiB
Markdown
# MySQL
|
||
|
||
MySQL (Bitnami) с поддержкой репликации primary/secondary и Prometheus метриками через mysqld_exporter sidecar.
|
||
|
||
## Быстрый старт
|
||
|
||
```yaml
|
||
# group_vars/all/addons.yml
|
||
addon_mysql: true
|
||
```
|
||
|
||
Секреты в `vault.yml`:
|
||
```yaml
|
||
vault_mysql_root_password: "root-password"
|
||
vault_mysql_password: "app-password"
|
||
```
|
||
|
||
```bash
|
||
make addon-mysql
|
||
```
|
||
|
||
## Параметры
|
||
|
||
| Переменная | Умолч. | Описание |
|
||
|---|---|---|
|
||
| `mysql_auth_username` | `appuser` | Пользователь приложения |
|
||
| `mysql_auth_database` | `appdb` | База данных приложения |
|
||
| `mysql_storage_size` | `8Gi` | Размер PVC |
|
||
| `mysql_secondary_replica_count` | `0` | Реплики secondary (0 = только primary) |
|
||
|
||
## Подключение из подов
|
||
|
||
```yaml
|
||
env:
|
||
- name: MYSQL_HOST
|
||
value: "mysql.mysql.svc.cluster.local"
|
||
- name: MYSQL_PORT
|
||
value: "3306"
|
||
- name: MYSQL_DATABASE
|
||
value: "appdb"
|
||
- name: MYSQL_USER
|
||
value: "appuser"
|
||
- name: MYSQL_PASSWORD
|
||
valueFrom:
|
||
secretKeyRef:
|
||
name: mysql
|
||
key: mysql-password
|
||
```
|
||
|
||
## Репликация
|
||
|
||
```yaml
|
||
mysql_secondary_replica_count: 1 # primary + 1 secondary
|
||
```
|
||
|
||
Primary: `mysql-primary.mysql.svc.cluster.local:3306`
|
||
Secondary (read-only): `mysql-secondary.mysql.svc.cluster.local:3306`
|
||
|
||
## Создать дополнительные базы
|
||
|
||
```bash
|
||
kubectl exec -n mysql statefulset/mysql-primary -- \
|
||
mysql -u root -p"$ROOT_PASSWORD" -e "CREATE DATABASE mydb; GRANT ALL ON mydb.* TO 'appuser'@'%';"
|
||
```
|
||
|
||
## Дамп и восстановление
|
||
|
||
```bash
|
||
# Дамп
|
||
kubectl exec -n mysql statefulset/mysql-primary -- \
|
||
mysqldump -u root -p"$ROOT_PASSWORD" appdb > dump.sql
|
||
|
||
# Восстановление
|
||
kubectl exec -i -n mysql statefulset/mysql-primary -- \
|
||
mysql -u root -p"$ROOT_PASSWORD" appdb < dump.sql
|
||
```
|
||
|
||
## Использование с Databasus
|
||
|
||
При `addon_databasus: true` MySQL автоматически добавляется как источник для резервного копирования.
|
||
## Официальные ресурсы
|
||
|
||
- Официальный сайт: [https://www.mysql.com/](https://www.mysql.com/)
|
||
- Официальная документация: [https://dev.mysql.com/doc/](https://dev.mysql.com/doc/)
|
||
- Версии Helm chart / ПО: [https://artifacthub.io/packages/helm/bitnami/mysql](https://artifacthub.io/packages/helm/bitnami/mysql)
|