Перейти к содержанию

etcd Cluster

Автоматически сгенерировано: 2026-03-03 09:38

Общая информация

Назначение: Распределённое хранилище конфигурации для Patroni

Версия: etcd v3

Члены кластера: - db-1 (10.10.19.31:2379) - db-2 (10.10.19.32:2379)

Endpoints

Сервер Client URL Peer URL
db-1 http://10.10.19.31:2379 http://10.10.19.31:2380
db-2 http://10.10.19.32:2379 http://10.10.19.32:2380

Конфигурация

Data directory: /var/lib/etcd

Cluster token: postgres-cluster-etcd

Initial cluster state: existing (после bootstrap)

Использование в Patroni

Patroni использует etcd для:

  • Выбор лидера PostgreSQL (leader election)
  • Хранение конфигурации кластера
  • Координация failover
  • Распределённые блокировки

Namespace в etcd: /service/postgres-cluster/

Проверка

# Список членов кластера
ssh db-1 'ETCDCTL_API=3 etcdctl member list'

# Статус endpoint
ssh db-1 'ETCDCTL_API=3 etcdctl endpoint status --write-out=table'

# Здоровье кластера
ssh db-1 'ETCDCTL_API=3 etcdctl endpoint health'

# Просмотр данных Patroni
ssh db-1 'ETCDCTL_API=3 etcdctl get --prefix /service/postgres-cluster/'

# Логи
ssh db-1 'sudo journalctl -u etcd -f'

Операции

Добавить нового члена

ETCDCTL_API=3 etcdctl member add db-3 --peer-urls=http://10.10.19.33:2380

Удалить члена

# Получить ID
ETCDCTL_API=3 etcdctl member list

# Удалить
ETCDCTL_API=3 etcdctl member remove <member-id>

Snapshot и restore

# Создать snapshot
ETCDCTL_API=3 etcdctl snapshot save /backup/etcd-snapshot.db

# Restore
ETCDCTL_API=3 etcdctl snapshot restore /backup/etcd-snapshot.db