Я все еще обнимаю Кубернеса и как это должно работать. В настоящее время я пытаюсь понять, как моделировать что-то вроде кластера PostgreSQL с потоковой репликацией, масштабированием и автоматическим отказоустойчивостью/откатом (pgpool-II
, repmgr
, выбрать ваш яд).
Моя основная проблема с этим подходом - двойственная природа экземпляра PostgreSQL, конфигурация - это либо мастер, либо холодный/теплый/горячий режим ожидания. Если я увеличиваю количество реплик, я бы ожидал, что они все придут как standbys, поэтому я бы предположил создать контроллер репликации postgresql-standby
отдельно от модуля postgresql-master
. Однако я ожидаю, что один из этих standbys станет мастером в случае, если текущий мастер не работает, поэтому он является общим контроллером репликации postgresql
.
Единственная идея, которую я имел до сих пор, - это установить конфигурацию репликации на внешний том и управлять изменениями состояния и состояния вне контейнеров.
(в случае PostgreSQL конфигурация, вероятно, уже будет находиться на томе внутри его каталога data
, который сам, очевидно, будет мне нужен на томе, но это не так)
Правильно ли это соответствует, или есть ли другой более чистый способ?