Files
K3S/addons/postgresql

PostgreSQL

PostgreSQL (Bitnami) с поддержкой репликации и Prometheus метриками через postgres_exporter. Используется как общая БД для Gitea, Harbor, Nextcloud, Databasus и других аддонов.

Быстрый старт

# group_vars/all/addons.yml
addon_postgresql: true

Секреты в vault.yml:

vault_postgresql_postgres_password: "superuser-password"
vault_postgresql_password: "app-password"
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

Переменные для подключения:

postgresql_external_host: "postgresql.postgresql.svc.cluster.local"
postgresql_external_port: 5432

Подключение из подов

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

Создать дополнительные базы и пользователей

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;
  "

Репликация

postgresql_replica_count: 1   # 1 secondary

Primary: postgresql-primary.postgresql.svc.cluster.local:5432 Read replicas: postgresql-read.postgresql.svc.cluster.local:5432

Дамп и восстановление

# Дамп
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