Достижение высокой доступности... Заметка

Достижение высокой доступности с распределенной базой данных на Kubernetes в Airbnb

Традиционно организации использовали дорогие автономные серверы с шардированием для масштабирования баз данных, но этот подход оказался проблематичным для обслуживания по мере роста спроса на данные. Запуск горизонтально масштабируемых, открытых баз данных в облаке с высокой доступностью, низкой задержкой и масштабируемостью по разумной цене является значительной проблемой. Airbnb приняла инновационную стратегию развертывания распределенного кластера баз данных на нескольких кластерах Kubernetes для улучшения надежности и эксплуатации. Управление сервисами с сохранением состояния, такими как базы данных, в Kubernetes является сложным, особенно в отношении замены узлов и обновлений, поскольку Kubernetes не осведомлен о распределении данных. Чтобы смягчить это, Airbnb прикрепила тома хранилища к узлам с помощью AWS EBS, что позволяет автоматически прикреплять их к новым виртуальным машинам через заявки на постоянный объем Kubernetes. Были разработаны пользовательские операторы Kubernetes для управления событиями замены узлов, которые категоризированы на инициированные базой данных, плановую инфраструктуру и неплановые сбои. Для инициированных базой данных и плановых событий операторы гарантируют, что все узлы запущены до замены и перехватывают исключения подов, чтобы координировать безопасные удаления. Неплановые сбои не могут быть скоординированы, но текущее обслуживание защищено блокировкой замен до тех пор, пока неисправное оборудование не будет исправлено. Чтобы обеспечить высокую региональную доступность, Airbnb развертывает каждую базу данных на трех независимых кластерах Kubernetes в разных зонах доступности AWS, ограничивая радиус действия проблем. Перераспределение кластеров баз данных гарантирует достаточную емкость даже в случае, если весь AZ, кластер Kubernetes или все узлы хранилища в зоне выйдут из строя. AWS EBS обеспечивает быстрое прикрепление для замены узлов и превосходную долговечность, позволяя создать высокодоступный кластер с только тремя репликами. Пиковые задержки в EBS смягчаются путем реализации таймаутов чтения хранилища и разрешения чтения из реплик для снижения задержки и избежания затрат на межзонный доступ, а устаревшие чтения еще больше оптимизируют производительность чтения. Эта много-кластерная стратегия Kubernetes, использующая AWS EBS и пользовательских операторов, позволяет открытым распределенным системам хранения достичь высокой доступности, низкой задержки и масштабируемости в облачных средах, обеспечивая надежное управление данными.
CdXz5zHNQW_5ISBolXzut.jpeg