• Русский
  • Архитектура

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

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

    image

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

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

    image

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

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