Я все еще обнимаю Кубернеса и как это должно работать. В настоящее время я изо всех сил пытаюсь понять, как моделировать что-то вроде кластера PostgreSQL с потоковой репликацией, масштабированием и автоматическим откатом/откатом (pgpool-II
, repmgr
, забрать свой яд).Как создать отказоустойчивый кластер PostgreSQL с помощью Docker/Kubernetes?
Моей главной проблемой при подходе является двойственная природа экземпляра PostgreSQL, конфигурация - это либо главный, либо холодный/теплый/горячий режим ожидания. Если я увеличу количество реплик, я бы ожидал, что они все придумают как standbys, поэтому я бы предположил, что создавал контроллер репликации отдельно от подкаталога postgresql-master
. Однако я также ожидал, что один из этих standbys станет мастером в случае, если текущий мастер не работает, поэтому он является общим контроллером репликации postgresql
.
Единственная идея, которую я имел до сих пор, - это установить конфигурацию репликации на внешний том и управлять изменениями состояния и состояния за пределами контейнеров.
(в случае PostgreSQL конфигурации, вероятно, уже быть на томе внутри его data
директории, которая сама по себе, очевидно, что-то я хочу на томе, но это рядом с точкой)
Это правильный подход, или есть ли другой более чистый способ?
Я мог бы помочь вам посмотреть [https://youtu.be/9W-ngbpBSMM] Kelsey Hightower ... – errordeveloper
@errordeveloper: смешно, как 40% демонстрационного времени потрачено на то, чтобы заставить Кубернете работать - - также представляет мой опыт. Tl; dr из видео: PostgreSQL не построен для масштабирования по горизонтали без усилий по перенастройке, поэтому он должен быть модулем, а не контроллером репликации. –
Это правда, хотя может быть оптимизировано с предварительно обработанными изображениями VM и несколькими другими ярлыками. – errordeveloper