Files
K3S/addons/postgresql/README.md
Sergey Antropoff 38aaadbfb1 docs: sync addon docs with explicit external/internal service modes
Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
2026-04-29 23:21:04 +03:00

106 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)