Реконфигурация Pangolin из standalone в кластерное решение
В данном разделе описан процесс реконфигурации СУБД Pangolin из standalone инсталляции в кластерное решение, а так же рассмотрено подключение к кластеру дополнительных реплик.
Процесс реконфигурации Pangolin
Процесс состоит из следующих разделов:
- Установка и настройка etcd.
- Установка Pangolin Manager.
- Подключение к кластеру дополнительных реплик.
- Завершающие действия.
Установка и настройка etcd
Необходимо устанавливать etcd той же версии, что устанавливается инсталлятором Pangolin. Узнать установленную версию etcd можно командой:
etcd --version
В кластерной конфигурации (Pangolin Manager+etcd) etcd устанавливается из стандартных репозиториев ОС. Все действия по установке etcd выполняются под системным пользователем root. Для установки и настройки etcd выполните шаги:
-
Проверьте наличие пакета etcd в репозиториях ОС:
root ~ % yum info etcd
Loaded plugins: product-id, search-disabled-repos
Available Packages
Name : etcd
Arch : x86_64
Version : 3.3.11
Release : 2.el7
Size : 10 M
Repo : rhel-7-server-extras-rpms
Summary : A highly-available key value store for shared configuration
URL : https://github.com/etcd-io/etcd
License : ASL 2.0
Description : A highly-available key value store for shared configuration. -
Установите пакет etcd. Пример команды установки:
root ~ % yum -y install etcd
-
Создайте конфигурационный файл для etcd. Файл будет создан в папке:
/etc/etcd/etcd.conf
:root ~ % install -m 644 <(cat <<EOF
ETCD_NAME="$(hostname -s)"
ETCD_LISTEN_CLIENT_URLS="http://<IP-адрес>:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://$(hostname):2379"
ETCD_LISTEN_PEER_URLS="http://<IP-адрес>:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://$(hostname):2380"
ETCD_INITIAL_CLUSTER_TOKEN="single"
ETCD_INITIAL_CLUSTER="$(hostname -s)=http://$(hostname):2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_ELECTION_TIMEOUT="5000"
ETCD_HEARTBEAT_INTERVAL="1000"
ETCD_ENABLE_V2="true"
EOF) /etc/etcd/etcd.conf -
После создания конфигурационного файла etcd, проверьте что заданы параметры:
ETCD_NAME
ETCD_ADVERTISE_CLIENT_URLS
ETCD_INITIAL_ADVERTISE_PEER_URLS
ETCD_INITIAL_CLUSTERДля каждого узла etcd данные параметры будут уникальные.
-
Внесите правки в systemd-сервис для etcd. Создайте каталог:
root ~ % mkdir /usr/lib/systemd/system/etcd.service.d
-
Создайте файл с изменениями для systemd-сервиса:
root ~ % echo -e '[Service]\nExecStart=\nExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) ionice -c2 -n0 /usr/bin/etcd"' > /usr/lib/systemd/system/etcd.service.d/override.conf
-
Перечитайте конфигурацию systemd после изменения сервиса:
root ~ % systemctl daemon-reload
-
Включите сервис для автоматического запуска etcd после перезагрузки ОС:
root ~ % systemctl enable etcd
-
Запустите etcd:
root ~ % systemctl start etcd
-
Проверьте корректность запуска и состояния сервиса:
root ~ % systemctl status etcd
etcd.service - Etcd Server
Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-06-16 13:51:25 MSK; 1 months 3 days ago
Main PID: 7723 (etcd)
CGroup: /system.slice/etcd.service
└─7723 /usr/bin/etcd -
Проверьте состояние кластера etcd:
root ~ % health
member {хеш} is healthy: got healthy result from <Адрес сервера>
member {хеш} is healthy: got healthy result from <Адрес сервера>
member {хеш} is healthy: got healthy result from <Адрес сервера>
cluster is healthy -
Включите аутентификацию в etcd и добавьте необходимых пользователей и роли для работы Pangolin Manager:
root ~ % export ETCDCTL_API=2
root ~ % etcdctl user add root
root ~ % etcdctl user add patronietcd
root ~ % etcdctl role add patroni
root ~ % etcdctl role grant patroni -path '/service/*' -readwrite
root ~ % etcdctl user grant patronietcd -roles patroni
root ~ % etcdctl auth enable
Установка Pangolin Manager
В Pangolin Manager содержится часть доработок, поэтому устанавливать его следует из дистрибутива Pangolin.
В рамках инструкции дистрибутив Pangolin будет распакован в /tmp/pangolin_distr
.
Примечание:
Состав дистрибутива Pangolin описан в разделе «Состав дистрибутива».
Шаги для установки Pangolin Manager:
-
Установите пакет pangolin-manager:
sudo yum install pangolin-manager-venv
sudo yum install pangolin-manager -
Дальнейшие действия удобнее выполнять под системным пользователем
postgres
. Переключитесь на системного пользователяpostgres
:root ~ % su - postgres