Развертывание высокодоступной базы данных PostgreSQL в AKS с помощью Azure CLI
В этом руководстве вы развернете высокодоступный кластер PostgreSQL, охватывающий несколько зон доступности Azure в AKS с помощью Azure CLI.
В этой статье описаны предварительные требования для настройки кластера PostgreSQL на Служба Azure Kubernetes (AKS) и обзор полного процесса развертывания и архитектуры.
Внимание
Программное обеспечение с открытым кодом упоминается во всей документации и примерах AKS. Развертываемое программное обеспечение исключается из соглашений об уровне обслуживания AKS, ограниченной гарантии и поддержка Azure. При использовании технологии с открытым исходным кодом вместе с AKS ознакомьтесь с вариантами поддержки, доступными от соответствующих сообществ и обслуживающих проектов для разработки плана.
Например, репозиторий Ray GitHub описывает несколько платформ, которые зависят от времени отклика, назначения и уровня поддержки.
Корпорация Майкрософт несет ответственность за создание пакетов с открытым кодом, которые мы развертываем в AKS. Эта ответственность включает полное владение сборкой, сканированием, подписью, проверкой и исправлением, а также контролем над двоичными файлами в образах контейнеров. Дополнительные сведения см. в статье об управлении уязвимостями для поддержки AKS и AKS.
Необходимые компоненты
- В этом руководстве предполагается базовое понимание основных концепций Kubernetes и PostgreSQL.
- Вам потребуется администратор доступа владельца или пользователя и встроенные роли Azure в подписке в учетной записи Azure.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Вам также потребуется установить следующие ресурсы:
- Azure CLI версии 2.56 или более поздней.
- расширение предварительной версии Служба Azure Kubernetes (AKS).
- jq, версия 1.5 или более поздняя.
- kubectl версии 1.21.0 или более поздней.
- Helm версии 3.0.0 или более поздней.
- opensl версии 3.3.0 или более поздней.
- Visual Studio Code или эквивалент.
- Крев версии 0.4.4 или более поздней.
- Подключаемый модуль kubectl CloudNativePG (CNPG).
Процесс развертывания
Из этого руководства вы узнаете, как выполнить следующие задачи:
- Используйте Azure CLI для создания кластера AKS с несколькими зонами.
- Разверните высокодоступный кластер PostgreSQL и базу данных с помощью оператора CNPG.
- Настройте мониторинг для PostgreSQL с помощью Prometheus и Grafana.
- Разверните пример набора данных в базе данных PostgreSQL.
- Выполните обновление кластера PostgreSQL и AKS.
- Имитация прерывания кластера и отработка отказа реплики PostgreSQL.
- Выполните резервное копирование и восстановление базы данных PostgreSQL.
Архитектура развертывания
На этой схеме показана настройка кластера PostgreSQL с одной первичной репликой и двумя репликами чтения, управляемыми оператором CloudNativePG (CNPG ). Архитектура предоставляет высокодоступную postgreSQL, запущенную в кластере AKS, которая может выдержать сбой зоны путем отработки отказа между репликами.
Резервные копии хранятся в Хранилище BLOB-объектов Azure, предоставляя другой способ восстановления базы данных в случае проблемы с репликацией потоковой передачи из первичной реплики.
Примечание.
Для приложений, требующих разделения данных на уровне базы данных, можно добавить дополнительные базы данных с командами postInitSQL и аналогичными. В настоящее время оператор CNPG не может добавлять дополнительные базы данных декларативным способом. Дополнительные сведения о операторе CNPG.
Следующие шаги
Соавторы
Корпорация Майкрософт поддерживает эту статью. Следующие участники первоначально написали:
- Кен Килти | Основной TPM
- Рассел де Пина | Основной TPM
- Адриан Джоан | Старший инженер клиента
- Дженни Хейс | Старший разработчик содержимого
- Кэрол Смит | Старший разработчик содержимого
- Эрин Шаффер | Разработчик содержимого 2
- Адам Шариф | Инженер клиента 2
Azure Kubernetes Service