• Русский
  • Deprecation Notice

    MySQL-PXC устарел. Пожалуйста, выполните миграцию на MySQL-MGR. См. Руководство по миграции.

    Архитектура

    Percona XtraDB Cluster объединяет Percona Server for MySQL, работающий с движком хранения XtraDB, и Percona XtraBackup с Galera library для обеспечения синхронной многомастерной репликации.

    Проектирование Operator тесно связано с реализацией высокой доступности Percona XtraDB Cluster, которую, в свою очередь, можно кратко описать с помощью следующей диаграммы.

    изображение

    Будучи обычным экземпляром MySQL Server, каждый узел содержит один и тот же набор данных, синхронизированных между узлами. Рекомендуемая конфигурация — иметь как минимум 3 узла. В базовой настройке с таким количеством узлов Percona XtraDB Cluster обеспечивает высокую доступность и продолжает работать, если вывести из строя любой из узлов. Кроме того, балансировка нагрузки может быть реализована с помощью маршрутизатора HAProxy, который принимает входящий трафик от клиентов MySQL и перенаправляет его на серверы MySQL на стороне backend.

    Чтобы обеспечить высокую доступность, operator использует node affinity для размещения экземпляров Percona XtraDB Cluster на отдельных рабочих узлах, если это возможно. Если какой-либо узел выходит из строя, pod с ним автоматически пересоздается на другом узле.

    изображение

    Для предоставления хранилища данных для stateful-приложений Kubernetes использует Persistent Volumes. PersistentVolumeClaim (PVC) используется для реализации автоматического предоставления хранилища pod’ам. Если происходит сбой, интерфейс Container Storage Interface (CSI) должен иметь возможность повторно смонтировать хранилище на другом узле. StorageClass PVC должен поддерживать эту возможность.

    Функциональность Operator расширяет Kubernetes API объектом PerconaXtraDBCluster и реализована как приложение на golang. Каждый объект PerconaXtraDBCluster соответствует одной отдельной настройке Percona XtraDB Cluster. Operator отслеживает все события для созданных объектов. Когда создается новый объект PerconaXtraDBCluster или существующий объект претерпевает некоторые изменения либо удаляется, operator автоматически создает/изменяет/удаляет все необходимые объекты Kubernetes с соответствующими настройками, чтобы обеспечить корректную работу Percona XtraDB Cluster.