Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
106 lines
3.1 KiB
Markdown
106 lines
3.1 KiB
Markdown
# PostgreSQL
|
||
|
||
PostgreSQL (Bitnami) с поддержкой репликации и Prometheus метриками через postgres_exporter. Используется как общая БД для Gitea, Harbor, Nextcloud, Databasus и других аддонов.
|
||
|
||
## Быстрый старт
|
||
|
||
```yaml
|
||
# group_vars/all/addons.yml
|
||
addon_postgresql: true
|
||
```
|
||
|
||
Секреты в `vault.yml`:
|
||
```yaml
|
||
vault_postgresql_postgres_password: "superuser-password"
|
||
vault_postgresql_password: "app-password"
|
||
```
|
||
|
||
```bash
|
||
make addon-postgresql
|
||
```
|
||
|
||
## Параметры
|
||
|
||
| Переменная | Умолч. | Описание |
|
||
|---|---|---|
|
||
| `postgresql_auth_username` | `appuser` | Пользователь приложения |
|
||
| `postgresql_auth_database` | `appdb` | База данных приложения |
|
||
| `postgresql_storage_size` | `8Gi` | Размер PVC |
|
||
| `postgresql_replica_count` | `0` | Реплики (0 = только primary) |
|
||
|
||
## Endpoint (для других аддонов)
|
||
|
||
```
|
||
postgresql.postgresql.svc.cluster.local:5432
|
||
```
|
||
|
||
Переменные для подключения:
|
||
```yaml
|
||
postgresql_external_host: "postgresql.postgresql.svc.cluster.local"
|
||
postgresql_external_port: 5432
|
||
```
|
||
|
||
## Подключение из подов
|
||
|
||
```yaml
|
||
env:
|
||
- name: DB_HOST
|
||
value: "postgresql.postgresql.svc.cluster.local"
|
||
- name: DB_PORT
|
||
value: "5432"
|
||
- name: DB_NAME
|
||
value: "appdb"
|
||
- name: DB_USER
|
||
value: "appuser"
|
||
- name: DB_PASSWORD
|
||
valueFrom:
|
||
secretKeyRef:
|
||
name: postgresql
|
||
key: password
|
||
```
|
||
|
||
## Создать дополнительные базы и пользователей
|
||
|
||
```bash
|
||
kubectl exec -n postgresql statefulset/postgresql -- \
|
||
psql -U postgres -c "
|
||
CREATE USER myapp WITH PASSWORD 'mypassword';
|
||
CREATE DATABASE myapp OWNER myapp;
|
||
GRANT ALL PRIVILEGES ON DATABASE myapp TO myapp;
|
||
"
|
||
```
|
||
|
||
## Репликация
|
||
|
||
```yaml
|
||
postgresql_replica_count: 1 # 1 secondary
|
||
```
|
||
|
||
Primary: `postgresql-primary.postgresql.svc.cluster.local:5432`
|
||
Read replicas: `postgresql-read.postgresql.svc.cluster.local:5432`
|
||
|
||
## Дамп и восстановление
|
||
|
||
```bash
|
||
# Дамп
|
||
kubectl exec -n postgresql statefulset/postgresql-primary -- \
|
||
pg_dump -U postgres appdb > dump.sql
|
||
|
||
# Восстановление
|
||
kubectl exec -i -n postgresql statefulset/postgresql-primary -- \
|
||
psql -U postgres appdb < dump.sql
|
||
```
|
||
|
||
## Автоинтеграция с аддонами
|
||
|
||
При `addon_postgresql: true` следующие аддоны автоматически используют PostgreSQL:
|
||
- `addon_gitea` — БД gitea
|
||
- `addon_harbor` — БД harbor
|
||
- `addon_nextcloud` — БД nextcloud
|
||
- `addon_databasus` — БД databasus
|
||
## Официальные ресурсы
|
||
|
||
- Официальный сайт: [https://www.postgresql.org/](https://www.postgresql.org/)
|
||
- Официальная документация: [https://www.postgresql.org/docs/](https://www.postgresql.org/docs/)
|
||
- Версии Helm chart / ПО: [https://artifacthub.io/packages/helm/bitnami/postgresql](https://artifacthub.io/packages/helm/bitnami/postgresql)
|