Поделиться через


Обзор развертывания высокодоступной базы данных PostgreSQL в Службе Azure Kubernetes (AKS)

В этом руководстве вы развернете высокодоступный кластер PostgreSQL, охватывающий несколько зон доступности Azure в AKS с помощью Azure CLI.

В этой статье описаны предварительные требования для настройки кластера PostgreSQL в Службе Azure Kubernetes (AKS) и обзор полного процесса развертывания и архитектуры.

Это важно

Программное обеспечение с открытым кодом упоминается во всей документации и примерах AKS. Программное обеспечение, которое вы развертываете, не покрывается соглашениями об уровне обслуживания AKS, ограниченной гарантией и поддержкой Azure. При использовании технологии с открытым исходным кодом вместе с AKS ознакомьтесь с вариантами поддержки, доступными от соответствующих сообществ и обслуживающих проектов для разработки плана.

Корпорация Майкрософт несет ответственность за создание пакетов с открытым кодом, которые мы развертываем в AKS. Эта ответственность включает полное управление процессами сборки, сканирования, подписывания, проверки и исправления ошибок, а также контроль над двоичными файлами в образах контейнеров. Для получения дополнительной информации см. Управление уязвимостями в AKS и Покрытие поддержки AKS.

Предпосылки

  • Вам также потребуется установить следующие ресурсы:

Процесс развертывания

В этом руководстве вы узнаете, как:

  • Используйте Azure CLI для создания кластера AKS с несколькими зонами.
  • Разверните высокодоступный кластер PostgreSQL и базу данных с помощью оператора CNPG.
  • Настройте мониторинг для PostgreSQL с помощью Prometheus и Grafana.
  • Разверните пример набора данных в базе данных PostgreSQL.
  • Выполните обновление кластера PostgreSQL и AKS.
  • Имитация прерывания кластера и отработка отказа реплики PostgreSQL.
  • Выполните резервное копирование и восстановление базы данных PostgreSQL.

Архитектура развертывания

На этой схеме показана настройка кластера PostgreSQL с одной первичной репликой и двумя репликами чтения, управляемыми оператором CloudNativePG (CNPG ). Архитектура предоставляет высокодоступную PostgreSQL, запущенную в кластере AKS, которая может выдержать сбой зоны путем переключения на резервные реплики.

Резервные копии хранятся в Azure Blob Storage, предоставляя альтернативный способ восстановления базы данных в случае проблемы с потоковой репликацией из первичной реплики.

Вы можете разместить PostgreSQL в AKS, если вам нужен полный контроль над конфигурацией базы данных, расширениями и архитектурой развертывания. Это идеальный вариант для интеграции с родными для Kubernetes инструментами, оптимизации затрат в масштабах и точной настройки производительности с помощью кастомных стратегий выделения ресурсов, кэширования и конфигураций хранилища, адаптированных под вашу рабочую нагрузку.

Схема архитектуры оператора Kubernetes CNPG для самостоятельного размещения высокодоступной базы данных PostgreSQL в AKS.

Замечание

Для приложений, требующих разделения данных на уровне базы данных, можно добавить дополнительные базы данных с командами postInitSQL и аналогичными. В настоящее время невозможно добавить дополнительные базы данных декларативным способом с оператором CNPG. Дополнительные сведения о операторе CNPG.

Рекомендации по хранению

Тип используемого хранилища может иметь большое влияние на производительность PostgreSQL. Далее в этом руководстве вы выберете вариант, подходящий для целей и потребностей в производительности.

Тип хранилища Совместимый драйвер Описание
Премиум SSD Драйвер CSI дисков Azure Максимальная устойчивость данных. Azure Premium SSD обеспечивает высокопроизводительное хранилище и легко работает с хранилищем с зональной избыточностью Azure (ZRS). SSD уровня "Премиум" предоставляется в зависимости от конкретных размеров, которые поддерживают определенные уровни IOPS и пропускной способности.
Премиум SSD v2 Драйвер CSI дисков Azure Оптимальная цена-производительность. Ssd Azure Premium версии 2 обеспечивает более высокую производительность, чем диски SSD уровня "Премиум", а также обычно снижает затраты. В отличие от SSD в ценовой категории "Премиум", SSD версии 2 в этой категории не имеет фиксированных размеров. Вы можете установить для SSD (цен. категория "Премиум") версии 2 любой необходимый поддерживаемый размер и выполнять точную настройку производительности без простоев. Диски SSD azure уровня "Премиум" версии 2 имеют определенные ограничения, которые следует учитывать. Полный список см. в разделе Ограничения SSD уровня "Премиум" версии 2.
Локальный NVMe или временный SSD (временные диски) Только хранилище контейнеров Azure Максимальная производительность. Временные диски — это локальные NVMe и временные SSD-хранилища, доступные для выбранных семейств виртуальных машин. Они обеспечивают максимальные возможные IOPS, пропускную способность и задержку в субмиллисекунду для вашего кластера AKS. Вы также можете воспользоваться высокой производительностью временных дисков с помощью хранилища контейнеров Azure, управляемого решения хранилища Kubernetes, которое динамически подготавливает постоянные тома для рабочих нагрузок с отслеживанием состояния, таких как PostgreSQL. Тем не менее, так как эти диски находятся на локальных виртуальных машинах, где размещен кластер, данные не сохраняются в службе хранилища Azure. Если кластер остановлен или деактивирован, все данные, хранящиеся на этих дисках, будут потеряны. Чтобы устранить это ограничение, в последующих разделах этого руководства показано, как настроить периодические резервные копии данных PostgreSQL в хранилище BLOB-объектов Azure.

Дальнейшие шаги

Соавторы

Корпорация Майкрософт поддерживает эту статью. Первоначальная версия была написана следующими участниками:

  • Кен Килти | Ведущий TPM
  • Рассел де Пина | Главный технический менеджер программ
  • Адриан Джоан | Старший инженер клиента
  • Дженни Хейс | Старший разработчик содержимого
  • Кэрол Смит | Старший разработчик содержимого
  • Эрин Шаффер | Разработчик содержимого 2
  • Адам Шариф | Инженер клиента 2

Подтверждение

Эта документация была совместно разработана с EnterpriseDB, обслуживающим оператор CloudNativePG. Мы благодарим Габриэль Бартолини за просмотр предыдущих проектов этого документа и предложение технических улучшений.