Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве вы развернете высокодоступный кластер PostgreSQL, охватывающий несколько зон доступности Azure в AKS с помощью Azure CLI.
В этой статье описаны предварительные требования для настройки кластера PostgreSQL в Службе Azure Kubernetes (AKS) и обзор полного процесса развертывания и архитектуры.
Это важно
Программное обеспечение с открытым кодом упоминается во всей документации и примерах AKS. Программное обеспечение, которое вы развертываете, не покрывается соглашениями об уровне обслуживания AKS, ограниченной гарантией и поддержкой Azure. При использовании технологии с открытым исходным кодом вместе с AKS ознакомьтесь с вариантами поддержки, доступными от соответствующих сообществ и обслуживающих проектов для разработки плана.
Корпорация Майкрософт несет ответственность за создание пакетов с открытым кодом, которые мы развертываем в AKS. Эта ответственность включает полное управление процессами сборки, сканирования, подписывания, проверки и исправления ошибок, а также контроль над двоичными файлами в образах контейнеров. Для получения дополнительной информации см. Управление уязвимостями в AKS и Покрытие поддержки AKS.
Предпосылки
- В этом руководстве предполагается базовое понимание основных концепций Kubernetes и PostgreSQL.
- Вам потребуются роли владельца или администратора доступа пользователей, а также участника и встроенные роли Azure в вашей учетной записи Azure.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, подумайте о запуске Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, войдите в Azure CLI с помощью команды az login . Чтобы завершить процесс аутентификации, следуйте шагам, отображаемым в вашем терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Когда вас попросят, установите расширение Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Вам также потребуется установить следующие ресурсы:
- Azure CLI версии 2.56 или более поздней.
- jq, версия 1.5 или более поздняя.
- kubectl версии 1.21.0 или более поздней.
- Helm версии 3.0.0 или более поздней.
- opensl версии 3.3.0 или более поздней.
- Visual Studio Code или эквивалент.
- Krew версии 0.4.4 или более поздней.
- Плагин kubectl CloudNativePG (CNPG).
Процесс развертывания
В этом руководстве вы узнаете, как:
- Используйте Azure CLI для создания кластера AKS с несколькими зонами.
- Разверните высокодоступный кластер PostgreSQL и базу данных с помощью оператора CNPG.
- Настройте мониторинг для PostgreSQL с помощью Prometheus и Grafana.
- Разверните пример набора данных в базе данных PostgreSQL.
- Выполните обновление кластера PostgreSQL и AKS.
- Имитация прерывания кластера и отработка отказа реплики PostgreSQL.
- Выполните резервное копирование и восстановление базы данных PostgreSQL.
Архитектура развертывания
На этой схеме показана настройка кластера PostgreSQL с одной первичной репликой и двумя репликами чтения, управляемыми оператором CloudNativePG (CNPG ). Архитектура предоставляет высокодоступную PostgreSQL, запущенную в кластере AKS, которая может выдержать сбой зоны путем переключения на резервные реплики.
Резервные копии хранятся в Azure Blob Storage, предоставляя альтернативный способ восстановления базы данных в случае проблемы с потоковой репликацией из первичной реплики.
Вы можете разместить PostgreSQL в AKS, если вам нужен полный контроль над конфигурацией базы данных, расширениями и архитектурой развертывания. Это идеальный вариант для интеграции с родными для Kubernetes инструментами, оптимизации затрат в масштабах и точной настройки производительности с помощью кастомных стратегий выделения ресурсов, кэширования и конфигураций хранилища, адаптированных под вашу рабочую нагрузку.
Замечание
Для приложений, требующих разделения данных на уровне базы данных, можно добавить дополнительные базы данных с командами 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. Мы благодарим Габриэль Бартолини за просмотр предыдущих проектов этого документа и предложение технических улучшений.