Руководство по миграции WebSphere Liberty/Open Liberty в Служба Azure Kubernetes (AKS) с высоким уровнем доступности и аварийного восстановления
В этом руководстве описан простой и эффективный способ реализации высокой доступности и аварийного восстановления (HA/DR) для Java с помощью WebSphere Liberty/Open Liberty в Служба Azure Kubernetes (AKS). Решение иллюстрирует, как достичь низкой цели времени восстановления (RTO) и целевой точки восстановления (RPO) с помощью простого приложения Jakarta EE на основе базы данных, работающего в WebSphere Liberty/Open Liberty.
Высокий уровень доступности и аварийного восстановления — это сложная тема с множеством возможных решений. Оптимальное решение зависит от уникальных требований. Другие способы реализации высокого уровня доступности и аварийного восстановления см. в конце этой статьи.
В этом руководстве описано следующее:
- Используйте оптимизированные для Azure рекомендации по обеспечению высокой доступности и аварийного восстановления.
- Настройте группу отработки отказа База данных SQL Microsoft Azure в парных регионах.
- Настройте основной кластер WebSphere Liberty/Open Liberty в AKS.
- Настройте аварийное восстановление для кластера с помощью Azure Backup.
- Настройте вторичный кластер AKS.
- Настройте Диспетчер трафика Azure.
- Тестирование отработки отказа с первичного на вторичную.
На следующей схеме показана архитектура, которая вы создаете:
Диспетчер трафика Azure проверяет работоспособность регионов и направляет трафик соответствующим образом на уровень приложений. Основной регион и дополнительный регион имеют полное развертывание кластера Liberty. Однако только основной регион активно обслуживает сетевые запросы от пользователей. Дополнительный регион является пассивным и активируется для получения трафика только в том случае, если основной регион испытывает нарушение работы службы. Диспетчер трафика Azure использует функцию проверки работоспособности Шлюз приложений Azure для реализации этой условной маршрутизации. Основной кластер выполняется, а вторичный кластер завершает работу. Геоотработка RTO уровня приложений зависит от времени запуска виртуальных машин (виртуальных машин) и запуска дополнительного кластера. RPO зависит от База данных SQL Azure, так как данные сохраняются и реплицируются в группе отработки отказа База данных SQL Azure.
Уровень базы данных состоит из группы отработки отказа База данных SQL Azure с первичным сервером и сервером-получателем. Конечная точка прослушивателя чтения и записи всегда указывает на основной сервер и подключается к кластеру WebSphere Liberty/Open Liberty в каждом регионе. Геоработка отказа переключает все базы данных-получатели в группе на основную роль. Сведения о географической отработки отказа RPO и RTO База данных SQL Azure см. в разделе "Обзор непрерывности бизнес-процессов с помощью База данных SQL Azure".
В этом руководстве были написаны службы Azure Backup и База данных SQL Azure, так как в этом руководстве используются функции высокой доступности этих служб. Другие варианты базы данных возможны, но вы должны учитывать функции высокой доступности любой выбранной базы данных.
Необходимые компоненты
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начать работу.
- Убедитесь, что вы назначены
Owner
роль илиContributor
User Access Administrator
роли в подписке. Чтобы проверить назначение, выполните действия, описанные в разделе "Перечисление назначений ролей Azure" с помощью портал Azure. - Подготовьте локальный компьютер с установленной системой Windows, Linux или macOS.
- Установите и настройте Git.
- Установите реализацию Java SE версии 17 или более поздней версии, например сборку OpenJDK от Майкрософт.
- Установите Maven, версию 3.9.3 или более позднюю версию.
Настройка группы отработки отказа База данных SQL Azure в парных регионах
В этом разделе описано, как создать группу База данных SQL Azure отработки отказа в парных регионах для использования с кластерами и приложениями WebSphere Liberty или Open Liberty. В следующем разделе описана настройка WebSphere Liberty/Open Liberty для хранения данных сеанса в этой базе данных. Эта практика ссылается на создание таблицы для сохраняемости сеансов.
Сначала создайте первичную База данных SQL Azure, выполнив действия портал Azure в кратком руководстве. Создание отдельной базы данных — База данных SQL Azure. Следуйте инструкциям, но не включая раздел "Очистка ресурсов". Используйте следующие инструкции при переходе по статье, а затем вернитесь к этой статье после создания и настройки База данных SQL Azure.
Когда вы перейдете к разделу "Создание одной базы данных", выполните следующие действия.
- На шаге 4 для создания новой группы ресурсов сохраните значение имени группы ресурсов, например
myResourceGroup
. - В шаге 5 для имени базы данных сохраните значение имени базы данных, например
mySampleDatabase
. - На шаге 6 для создания сервера выполните следующие действия.
- Введите уникальное имя сервера, например
sqlserverprimary-mjg032524
. - В поле Расположение выберите Восточная часть США.
- Для метода проверки подлинности выберите "Использовать проверку подлинности SQL".
- Сохраните значение входа администратора сервера, например
azureuser
. - Сохраните значение пароля .
- Введите уникальное имя сервера, например
- На шаге 8 для среды рабочей нагрузки выберите "Разработка". Просмотрите описание и рассмотрите другие варианты рабочей нагрузки.
- На шаге 11 для избыточности хранилища резервных копий выберите локально избыточное хранилище резервных копий. Рассмотрим другие варианты резервного копирования. Дополнительные сведения см. в разделе избыточности хранилища резервных копий автоматических резервных копий в База данных SQL Azure.
- На шаге 14 в конфигурации правил брандмауэра для разрешения доступа к этому серверу служб и ресурсов Azure нажмите кнопку "Да".
Затем создайте группу отработки отказа База данных SQL Azure, выполнив портал Azure действия, описанные в разделе "Настройка группы отработки отказа для База данных SQL Azure". Вам потребуется только следующие разделы: создание группы отработки отказа и тестирование плановая отработка отказа. Выполните следующие действия, как описано в статье, а затем вернитесь к этой статье после создания и настройки группы отработки отказа База данных SQL Azure:
Когда вы перейдете к разделу "Создание группы отработки отказа", выполните следующие действия.
- На шаге 5 для создания группы отработки отказа введите и сохраните уникальное имя группы отработки отказа, например
failovergroup-mjg032524
. - На шаге 5 для настройки сервера выберите параметр для создания нового сервера-получателя, а затем выполните следующие действия.
- Введите уникальное имя сервера, например
sqlserversecondary-mjg032524
. - Введите тот же администратор сервера и пароль, что и основной сервер.
- Для расположения выберите (США) западная часть США.
- Убедитесь, что выбрана служба Azure для доступа к серверу .
- Введите уникальное имя сервера, например
- На шаге 5 для настройки баз данных в группе выберите базу данных, созданную на основном сервере, например
mySampleDatabase
.
- На шаге 5 для создания группы отработки отказа введите и сохраните уникальное имя группы отработки отказа, например
После выполнения всех действий в разделе "Тестирование плановая отработка отказа", откройте страницу группы отработки отказа и используйте ее для тестирования отработки отказа кластеров WebSphere Liberty/Open Liberty позже.
Настройка основного кластера WebSphere Liberty/Open Liberty в AKS
В этом разделе описано, как создать основной кластер WebSphere Liberty/Open Liberty в AKS с помощью IBM WebSphere Liberty и Open Liberty на Служба Azure Kubernetes предложение. Вторичный кластер восстанавливается из основного кластера во время отработки отказа с помощью Azure Backup позже.
Развертывание основного кластера WebSphere Liberty/Open Liberty
Чтобы развернуть основной кластер, выполните следующие действия.
Откройте IBM WebSphere Liberty и Open Liberty на Служба Azure Kubernetes предложение в браузере и нажмите кнопку "Создать". Вы увидите область "Основные сведения" предложения.
Чтобы заполнить область "Основные сведения", выполните следующие действия.
- Убедитесь, что значение, отображаемое для подписки , совпадает с ролями, перечисленными в разделе предварительных требований.
- Необходимо развернуть предложение в пустой группе ресурсов. В поле "Группа ресурсов" выберите "Создать" и введите уникальное значение для группы ресурсов, например
liberty-aks-eastus-mjg032524
. - В разделе "Сведения об экземпляре" для региона выберите "Восточная часть США".
- Нажмите кнопку "Рядом", чтобы перейти к области AKS.
Подождите некоторое время. Все поля должны быть предварительно заполнены значениями по умолчанию в области AKS . Нажмите кнопку "Далее", чтобы перейти к области балансировки нагрузки.
Чтобы заполнить область балансировки нагрузки , выполните следующие действия.
- Для подключения к Шлюз приложений Azure?нажмите кнопку "Да".
- Оставьте значения по умолчанию для других полей.
- Нажмите кнопку "Рядом", чтобы перейти к области "Оператор" и "Приложение".
Чтобы заполнить область оператора и приложения , выполните следующие действия.
Оставьте значения по умолчанию для всех полей.
Примечание.
В этом руководстве развертывается оператор Open Liberty с помощью значений по умолчанию. При необходимости можно развернуть оператор WebSphere Liberty, выбрав "Да " для IBM, поддерживаемый?.
Выберите Review + create (Просмотреть и создать).
Дождитесь завершения последней проверки, а затем нажмите кнопку "Создать".
Через некоторое время отобразится страница развертывания , на которой выполняется развертывание.
Примечание.
Если во время выполнения окончательной проверки возникли проблемы, исправьте их и повторите попытку.
В зависимости от сетевых условий и других действий в выбранном регионе развертывание может занять около 30 минут. После этого на странице развертывания отобразится текст развертывания.
Проверка развертывания кластера
Вы развернули кластер AKS, экземпляр Реестр контейнеров Azure (ACR) и Шлюз приложений Azure в основном регионе. Кластер AKS — это целевая вычислительная платформа, в которой развернуто и запущено ваше приложение. Экземпляр ACR сохраняет образ приложения, который AKS извлекает во время развертывания приложения. Шлюз приложений Azure выступает в качестве подсистемы балансировки нагрузки для приложения, развернутого в кластере AKS.
Прежде чем перейти к следующему шагу, выполните следующие действия, чтобы проверить эти ключевые компоненты:
Вернитесь на страницу развертывания , а затем выберите выходные данные.
Скопируйте значение свойства cmdToConnectToCluster. Откройте терминал, вставьте скопированную команду и нажмите клавишу ВВОД , чтобы выполнить. Вы увидите сообщение, аналогичное следующему примеру, включенному в выходные данные:
Merged "cluster3984d1-admin" as current context in <your-user>\.kube\config
Сохраните команду, чтобы использовать ее для подключения к кластеру позже.
Выполните
kubectl get pod --all-namespaces
в терминале список всех модулей pod, работающих в кластере AKS. Выходные данные должны соответствовать следующему примеру.NAMESPACE NAME READY STATUS RESTARTS AGE cert-manager cert-manager-66bc9756fd-255pk 1/1 Running 0 8m55s cert-manager cert-manager-cainjector-669c9fb694-k4q88 1/1 Running 0 8m55s cert-manager cert-manager-webhook-84967d556d-vj4lp 1/1 Running 0 8m55s kube-system azure-ip-masq-agent-dgzkt 1/1 Running 0 29m kube-system cloud-node-manager-6x7bp 1/1 Running 0 29m kube-system coredns-789789675-6b7dh 1/1 Running 0 28m kube-system coredns-789789675-n68wt 1/1 Running 0 29m kube-system coredns-autoscaler-649b947bbd-zhdbn 1/1 Running 0 29m kube-system csi-azuredisk-node-h9p7m 3/3 Running 0 29m kube-system csi-azurefile-node-jnllw 3/3 Running 0 29m kube-system ingress-appgw-deployment-69944d8fb9-v9btr 1/1 Running 5 (12m ago) 17m kube-system konnectivity-agent-94878f88c-hfqng 1/1 Running 0 29m kube-system konnectivity-agent-94878f88c-ln2vp 1/1 Running 0 29m kube-system kube-proxy-28lkg 1/1 Running 0 29m kube-system metrics-server-5fffcb8954-549xl 2/2 Running 0 28m kube-system metrics-server-5fffcb8954-fn56g 2/2 Running 0 28m open-liberty olo-controller-manager-7954d76cf8-qhmxw 1/1 Running 0 8m40s
Запустите
kubectl get secret
в терминале, чтобы получить список всех секретов, установленных в кластере AKS. В выходных данных должен появиться один секрет, как показано в следующем примере:NAME TYPE DATA AGE secret3984d1 kubernetes.io/tls 2 24m
Этот секрет представляет собой секрет TLS, содержащий данные сертификата и ключа для трафика TLS. Скопируйте и сохраните в сторону имя секрета, например,
secret3984d1
вы используете его в развертывании приложения позже.Вернитесь на страницу выходных данных. Скопируйте значение свойства cmdToLoginInRegistry. Вставьте скопированную команду в терминал и нажмите клавишу ВВОД , чтобы выполнить. В выходных данных должно появиться имя входа. Откройте терминал и используйте его для дальнейшей настройки кластера WebSphere Liberty/Open Liberty позже.
Чтобы получить имя и DNS-имя общедоступного IP-адреса Шлюз приложений Azure, выполните следующие действия. Они используются для развертывания приложений и последующей настройки Диспетчер трафика Azure.
- В портал Azure в поле поиска введите группы ресурсов и выберите группы ресурсов из результатов поиска.
- Выберите имя группы ресурсов для основного региона, например
liberty-aks-eastus-mjg032524
. - Найдите префикс ресурса общедоступного IP-адреса ,
gwip
а затем скопируйте и сохраните его имя. - Выберите ресурс общедоступного IP-адреса , а затем скопируйте и сохраните DNS-имя , например
olgw3984d1.eastus.cloudapp.azure.com
.
Включение георепликации для экземпляра ACR
Экземпляр ACR предназначен для хранения образов приложений для первичных и вторичных кластеров. Чтобы включить георепликацию для экземпляра ACR, выполните следующие действия.
В портал Azure в поле поиска введите группы ресурсов и выберите группы ресурсов из результатов поиска.
Выберите имя группы ресурсов для основного региона, например
liberty-aks-eastus-mjg032524
.Найдите префикс
acr
ресурса реестра контейнеров, а затем выберите его, чтобы открыть его.Выберите Свойства. Для плана ценообразования выберите "Премиум", а затем нажмите кнопку "Сохранить". Дождитесь завершения.
Выберите георепликацию, а затем нажмите кнопку "Добавить". В разделе "Расположение" выберите "Западная часть США", а затем нажмите кнопку "Создать". Дождитесь завершения.
Подождите некоторое время, нажмите кнопку "Обновить". Повторите операцию, пока не отобразится два расположения, а состояние готово.
Чтобы получить учетные данные для входа в ACR, выполните следующие действия. Они используются для развертывания приложений позже.
- Выберите Ключи доступа.
- Скопируйте и сохраните значение для сервера входа, имени пользователя и пароля.
Развертывание примера приложения
Выполните следующие действия, чтобы развернуть и запустить пример приложения CRUD Java/Jakarta EE в кластере WebSphere Liberty/Open Liberty для тестовой отработки отказа аварийного восстановления.
Скачайте пример с помощью следующих команд:
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git cd open-liberty-on-aks export BASE_DIR=$PWD git checkout 20240325
Приложение настраивает источник данных jdbc/JavaEECafeDB, который подключается к развернутой ранее База данных SQL Azure. Источник данных используется для хранения данных сеанса HTTP, что позволяет выполнять отработку отказа и балансировку нагрузки между кластером серверов WebSphere Liberty и Open Liberty. Пример приложения также настраивает схему сохраняемости для сохранения данных
coffee
приложения в одном источнике данных. Обратите внимание, что корень контекста примера настроен как / в файле server.xml .Используйте следующие команды, чтобы определить переменные среды со значениями, сохраненными ранее:
export DB_SERVER_NAME=<failover-group-name>.database.windows.net export DB_NAME=mySampleDatabase export DB_USER=azureuser@<failover-group-name> export DB_PASSWORD='<SQL-Server-admin-login-password>' export LOGIN_SERVER=<ACR-login-server> export USER_NAME=<ACR-username> export PASSWORD='<ACR-password>' export INGRESS_TLS_SECRET=<TLS-secret-name>
Используйте следующие команды, чтобы упаковать приложение, создать образ Docker, отправить образ в экземпляр ACR и развернуть образ в кластере AKS:
cd $BASE_DIR/java-app mvn clean install cd $BASE_DIR/java-app/target # If you deployed WebSphere Liberty Operator previously, use "Dockerfile-wlp" instead of "Dockerfile" docker buildx build --platform linux/amd64 -t javaee-cafe:v1 --pull --file=Dockerfile . docker tag javaee-cafe:v1 ${LOGIN_SERVER}/javaee-cafe:v1 docker login -u ${USER_NAME} -p ${PASSWORD} ${LOGIN_SERVER} docker push ${LOGIN_SERVER}/javaee-cafe:v1 cd $BASE_DIR/java-app/target kubectl apply -f db-secret.yaml # If you deployed WebSphere Liberty Operator previously, use "webspherelibertyapplication-agic.yaml" instead of "openlibertyapplication-agic.yaml" kubectl apply -f openlibertyapplication-agic.yaml
Выполните следующую команду, чтобы получить развернутые примеры приложения:
# If you deployed WebSphere Liberty Operator previously, use "WebSphereLibertyApplication" instead of "OpenLibertyApplication" kubectl get OpenLibertyApplication
В выходных данных должно появиться одно приложение READY :
NAME IMAGE EXPOSED RECONCILED RESOURCESREADY READY AGE javaee-cafe-cluster-agic acr3984d1.azurecr.io/javaee-cafe:v1 True True True 45s
Выполните следующую команду, чтобы получить состояние модулей pod, созданных во время развертывания:
kubectl get pods
В следующем примере указывается, что выполняются все модули pod. Если вы не видите аналогичные выходные данные, подождите некоторое время и повторите операцию.
NAME READY STATUS RESTARTS AGE javaee-cafe-cluster-agic-6bbb8d6f5c-2xjc4 1/1 Running 0 1m javaee-cafe-cluster-agic-6bbb8d6f5c-4f449 1/1 Running 0 1m javaee-cafe-cluster-agic-6bbb8d6f5c-m2wg6 1/1 Running 0 1m
Чтобы убедиться, что приложение работает должным образом, выполните следующие действия.
На новой вкладке браузера откройте DNS-имя общедоступного IP-адреса Шлюз приложений Azure, которую вы сохранили ранее.
https
Используйте протокол, напримерhttps://olgw3984d1.eastus.cloudapp.azure.com
. Вы увидите страницу приветствия примера приложения.Создайте кофе с именем и ценой , например, Coffee 1 с ценой 10 , которая сохраняется как в таблице данных приложения, так и в таблице сеансов базы данных. Отображаемый пользовательский интерфейс должен быть похож на следующий снимок экрана:
Если пользовательский интерфейс не выглядит похожим, перед продолжением устраняйте неполадку и устраняйте ее.
Настройка аварийного восстановления для кластера с помощью Azure Backup
В этом разделе описано, как настроить аварийное восстановление кластера AKS в основном регионе с помощью Azure Backup.
Создание учетной записи хранилища
Резервное копирование AKS использует контейнер BLOB-объектов для хранения ресурсов кластера AKS. Вы создаете другой контейнер BLOB-объектов в качестве промежуточного расположения для использования во время восстановления между регионами.
Чтобы создать учетную запись хранения и два контейнера, выполните следующие действия. Некоторые из этих шагов направляют вас к другим руководствам.
- Войдите на портал Azure.
- Создайте учетную запись хранения, выполнив действия, описанные в разделе "Создание учетной записи хранения". Вам не нужно выполнять все действия, описанные в статье. Заполните поля, как показано на панели "Основные сведения" , выполнив следующие действия:
- Для группы ресурсов выберите существующую группу ресурсов, в которой развертывается основной кластер, например
liberty-aks-eastus-mjg032524
. - Для имени учетной записи хранения введите уникальное имя, например
storageeastusmjg032524
. - В поле Страна или регион выберите Восточная часть США.
- Выберите "Просмотр и создание ", чтобы принять параметры по умолчанию.
- Перейдите к проверке и созданию учетной записи, а затем вернитесь к этой статье.
- Для группы ресурсов выберите существующую группу ресурсов, в которой развертывается основной кластер, например
- Создайте контейнер хранилища для расширения резервного копирования AKS, выполнив действия, описанные в разделе "Создание контейнера хранилища". Это руководство используется
aks-backup-ext
в качестве имени контейнера. - Создайте другой контейнер хранилища в качестве промежуточного расположения для использования во время восстановления. Это руководство используется
staging
в качестве имени контейнера.
Включение расширения резервного копирования AKS
Прежде чем продолжить, выполните следующие действия, чтобы установить расширение резервного копирования AKS в кластере в основном регионе:
Включите драйверы и моментальные снимки CSI для кластера. Для следующей
az aks update
команды обновите значение переменнойRG_NAME
Bash до имени группы ресурсов , например,liberty-aks-eastus-mjg032524
и запустите в локальном терминале Bash.export RG_NAME=<your-aks-cluster-resource-group> export AKS_NAME=$(az aks list \ --resource-group ${RG_NAME} \ --query "[0].name" \ --output tsv | tr -d '\r') az aks update \ --resource-group ${RG_NAME} \ --name ${AKS_NAME} \ --enable-disk-driver \ --enable-file-driver \ --enable-blob-driver \ --enable-snapshot-controller --yes
Для включения драйверов требуется около 5 минут. Прежде чем продолжить, убедитесь, что команды выполняются без ошибок.
Откройте группу ресурсов, в которую развернуты AKS, например
liberty-aks-eastus-mjg032524
. Выберите кластер AKS из списка ресурсов.В разделе "Параметры целевой страницы AKS" выберите "Резервная копия", а затем выберите "Установить расширение".
На странице расширения резервного копирования Install AKS нажмите кнопку "Далее". Выберите учетную запись
storageeastusmjg032524
хранения и контейнер BLOB-объектовaks-backup-ext
, созданный в той же группе ресурсов. Нажмите кнопку "Далее", а затем нажмите кнопку "Создать". Выполнение этого шага занимает около пяти минут.
Резервное копирование кластера AKS
Выполните следующие действия, чтобы создать резервную копию кластера AKS:
В портал Azure в поле поиска найдите хранилища резервных копий. Вы увидите его в разделе "Службы". Выберите ее.
Выполните действия, описанные в разделе "Резервное копирование Служба Azure Kubernetes" с помощью Azure Backup, чтобы включить резервное копирование AKS для основного кластера. Выполните шаги до, но не включая, использование перехватчиков во время резервного копирования AKS и выполните остальные действия, описанные в этом разделе, чтобы внести изменения по мере использования.
Когда вы перейдете к разделу "Создание хранилища резервных копий", выполните следующие действия.
Для шага 1 для группы ресурсов выберите существующую группу ресурсов, в которой развертывается основной кластер, например
liberty-aks-eastus-mjg032524
.В качестве имени хранилища резервных копий введите уникальное значение, например
aks-backup-vault-eastus-mjg032524
.В поле Страна или регион выберите Восточная часть США.
Для избыточности хранилища резервных копий выберите глобально избыточность.
Для шага 2 для восстановления между регионами нажмите кнопку "Включить".
Когда вы перейдете к разделу "Создание политики резервного копирования", выполните следующие действия.
В разделе "Настройка резервных копий" выполните следующие действия.
Пропустите шаг 1–5, которые предназначены для установки расширения AKS. Начните с шага 6 для кластера AKS в основном регионе.
Для шага 7 для хранилища выберите хранилище резервных копий, созданное в той же группе ресурсов, например
aks-backup-vault-eastus-mjg032524
. При возникновении ошибок разрешений выберите "Предоставить разрешения " для перехода. После завершения развертывания разрешений, если ошибка по-прежнему отображается, выберите повторную проверку, чтобы обновить назначения ролей.На шаге 10 найдите команду "Выбрать ресурсы для резервного копирования". Для имени экземпляра резервного копирования введите уникальное имя, например
akseastusmjg032524
. Для других параметров выберите все параметры. Убедитесь, что выбран параметр "Включить секреты ".На шаге 11 возникает ошибка назначения ролей. Выполните шаг 12–14, чтобы устранить ошибку.
После выбора настройки резервного копирования на шаге 15 вернитесь на страницу резервного копирования . Подождите некоторое время, а затем нажмите кнопку "Обновить". Повторите операцию, пока не увидите, что экземпляр резервного копирования указан и его состояние защиты настроено на защиту.
Подождите, пока резервное копирование уровня "Стандартный" хранилища произойдет
В AKS уровень "Стандартный" — это единственный уровень, поддерживающий геоизбыточное обеспечение и восстановление между регионами. Как указано в разделе "Какой уровень хранилища резервных копий поддерживает резервное копирование AKS?", "На уровень хранилища перемещается только одна запланированная точка восстановления в день". Необходимо дождаться выполнения стандартной резервной копии Vault. Хорошая нижняя граница — ждать не более 24 часов после завершения предыдущего шага перед восстановлением.
Выполните следующие действия, чтобы убедиться, что доступна стандартная резервная копия Хранилища:
На странице резервного копирования основного кластера AKS выберите экземпляр резервного копирования.
Подождите некоторое время и нажмите кнопку "Обновить". Повторите операцию, пока не увидите, что в разделе RESTORE POINT отображается по крайней мере одна рабочая и стандартная точка восстановления.
Настройка вторичного кластера AKS
Ожидая завершения резервного копирования хранилища для основного кластера AKS, настройте дополнительный кластер AKS для последующего восстановления.
Используйте те же действия, описанные в разделе "Развертывание основного кластера WebSphere Liberty/Open Liberty", чтобы настроить вторичный кластер AKS в дополнительном регионе, за исключением следующих различий:
В области "Основные сведения" выполните следующие действия.
- В поле "Группа ресурсов" выберите "Создать" и введите другое уникальное значение для группы ресурсов, например
liberty-aks-westus-mjg032524
. - В разделе "Сведения об экземпляре" для региона выберите "Западная часть США".
- В поле "Группа ресурсов" выберите "Создать" и введите другое уникальное значение для группы ресурсов, например
В области AKS выполните следующие действия.
Выполните те же действия в разделе "Проверка развертывания кластера ", чтобы проверить развертывание в дополнительном регионе, за исключением следующих различий:
- Вам не нужно копировать и сохранять в стороне имя секрета TLS. Секрет TLS восстанавливается из резервной копии основного кластера AKS.
- Используйте группу ресурсов вторичного кластера , например,
liberty-aks-westus-mjg032524
при поиске имени и DNS-имени общедоступного IP-адреса Шлюз приложений Azure, развернутой в дополнительном регионе.
Используйте те же действия, описанные в разделе "Создание учетной записи хранения" для создания учетной записи хранения в дополнительном регионе, за исключением следующих различий:
- Для поля группы ресурсов выберите существующую группу ресурсов, в которой развернут дополнительный кластер, например
liberty-aks-westus-mjg032524
. - Для имени учетной записи хранения введите уникальное имя, например
storagewestusmjg032524
. - В поле Регион выберите Западная часть США.
Используйте те же действия, что и в разделе "Включить расширение резервного копирования AKS", чтобы установить расширение резервного копирования AKS для кластера в дополнительном регионе, за исключением следующих различий:
- На шаге 1 для включения драйверов и моментальных снимков CSI для дополнительного кластера обновите значение переменной
RG_NAME
Bash в группе ресурсов в дополнительном регионе, напримерliberty-aks-westus-mjg032524
. - На шаге 2 выберите кластер AKS из группы ресурсов в дополнительном регионе, например
liberty-aks-westus-mjg032524
. - На шаге 4 для установки расширения резервного копирования AKS для дополнительного кластера выберите учетную запись хранения, созданную в той же группе ресурсов дополнительного региона, например
storagewestusmjg032524
.
Чтобы сэкономить затраты, остановите кластер AKS в дополнительном регионе, выполнив действия, описанные в разделе "Остановка" и запуск кластера Служба Azure Kubernetes (AKS). Перед восстановлением кластера необходимо запустить его позже.
Настройка Диспетчер трафика Azure
В разделе "Ожидание стандартного резервного копирования хранилища" упоминалось в разделе "Ожидание стандартной резервной копии хранилища". После того как вы увидите, что доступно стандартное резервное копирование Хранилища, вы можете создать Диспетчер трафика Azure для распространения трафика в общедоступных приложениях в глобальных регионах Azure. Основная конечная точка указывает на общедоступный IP-адрес Шлюз приложений Azure в основном регионе. Вторичная конечная точка указывает на общедоступный IP-адрес Шлюз приложений Azure в дополнительном регионе.
Создайте профиль Диспетчер трафика Azure, выполнив действия, описанные в кратком руководстве. Создание профиля Диспетчер трафика с помощью портал Azure. Вам потребуется только следующие разделы: создание профиля Диспетчер трафика и добавление конечных точек Диспетчер трафика. Выполните следующие действия, как описано в следующих разделах, а затем вернитесь к этой статье после создания и настройки Диспетчер трафика Azure:
Когда вы перейдете к разделу "Создание профиля Диспетчер трафика" на шаге 2 для создания профиля Диспетчер трафика, выполните следующие действия.
- В поле "Имя" введите уникальное имя профиля Диспетчер трафика , например
tmprofile-mjg032524
. - В пункте Метод маршрутизации выберите Приоритет.
- Для группы ресурсов введите и сохраните новое имя группы ресурсов, например
myResourceGroupTM1
.
- В поле "Имя" введите уникальное имя профиля Диспетчер трафика , например
Когда вы перейдете к разделу Добавление конечных точек Диспетчер трафика, выполните следующие действия.
- После открытия профиля Диспетчер трафика на шаге 2 на странице конфигурации выполните следующие действия:
- Для времени жизни DNS (TTL) введите 10.
- В разделе "Параметры монитора конечной точки" для протокола выберите https и для порта введите 443.
- В разделе "Быстрые параметры отработки отказа конечной точки" используйте следующие значения:
- Для внутреннего проверки выберите 10.
- Для допустимого числа сбоев введите 3.
- Для времени ожидания пробы введите 5.
- Выберите Сохранить. Дождитесь завершения.
- На шаге 4 для добавления основной конечной точки
myPrimaryEndpoint
выполните следующие действия:- Для типа целевого ресурса выберите общедоступный IP-адрес.
- Выберите раскрывающийся список "Выбор общедоступного IP-адреса" и введите имя общедоступного IP-адреса Шлюз приложений Azure в регионе "Восточная часть США", который вы сохранили ранее. Должно появиться одно совпадение записи. Выберите его для общедоступного IP-адреса.
- На шаге 6 для добавления отработки отказа или вторичной конечной точки
myFailoverEndpoint
выполните следующие действия.- Для типа целевого ресурса выберите общедоступный IP-адрес.
- Выберите раскрывающийся список "Выбор общедоступного IP-адреса" и введите имя общедоступного IP-адреса Шлюз приложений Azure в регионе "Западная часть США", который вы сохранили ранее. Должно появиться одно совпадение записи. Выберите его для общедоступного IP-адреса.
- Подождите некоторое время. Выберите "Обновить", пока состояние монитора для конечной точки находится в сети, а состояние монитора для конечной точки
myPrimaryEndpoint
myFailoverEndpoint
— "Понижено".
- После открытия профиля Диспетчер трафика на шаге 2 на странице конфигурации выполните следующие действия:
Затем выполните следующие действия, чтобы убедиться, что пример приложения, развернутого в основном кластере, доступен из профиля Диспетчер трафика:
Выберите обзор созданного профиля Диспетчер трафика.
Проверьте и скопируйте DNS-имя профиля Диспетчер трафика, заменив протокол
http
https
на . Например,https://tmprofile-mjg032524.trafficmanager.net
.Откройте URL-адрес на новой вкладке браузера. Вы увидите, что созданный ранее кофе отображается на странице.
Создайте другой кофе с другим именем и ценой , например , Coffee 2 с ценой 20 , которая сохраняется как в таблице данных приложения, так и в таблице сеансов базы данных. Отображаемый пользовательский интерфейс должен быть похож на следующий снимок экрана:
Если пользовательский интерфейс не выглядит похожим, перед продолжением устраняйте неполадку и устраняйте ее. Откройте консоль и используйте ее для тестов отработки отказа позже.
Вы завершили настройку профиля Диспетчер трафика. Сохраните страницу открытой и используете ее для мониторинга изменения состояния конечной точки в событии отработки отказа позже.
Тестирование отработки отказа из первичного в вторичный
В этом разделе описано, как проверить отработку отказа, вы вручную переключите сервер База данных SQL Azure и восстановите резервную копию кластера AKS, а затем выполните отработку отказа с помощью портал Azure.
Отработка отказа на дополнительный сайт
Чтобы имитировать сбой основного региона, остановите основной кластер AKS, выполнив действия, описанные в разделе "Остановка" и запуск кластера Служба Azure Kubernetes (AKS).
Затем запустите вторичный кластер AKS, чтобы его можно было восстановить из резервной копии основного кластера.
Примечание.
Если у вас есть приложения WebSphere Liberty/Open Liberty, работающие в целевом кластере восстановления, чтобы избежать конфликтов, выполните следующие действия, чтобы очистить приложения WebSphere Liberty/Open Liberty:
Подключитесь к целевому кластеру, выполнив команду, которую
cmdToConnectToCluster
вы сохранили ранее.Для приложений Open Liberty выполните следующую команду:
kubectl delete OpenLibertyApplication --all --all-namespaces
Для приложений WebSphere Liberty выполните следующую команду:
kubectl delete WebSphereLibertyApplication --all --all-namespaces
Затем перейдите на вкладку браузера профиля Диспетчер трафика и убедитесь, что состояние монитора для обеих конечных myPrimaryEndpoint
точек и myFailoverEndpoint
понижено.
Теперь выполните следующие действия, чтобы выполнить отработку отказа База данных SQL Azure с сервера-источника на дополнительный сервер:
- Перейдите на вкладку браузера База данных SQL Azure группы отработки отказа, например
failovergroup-mjg032524
. - Выберите отработку отказа, а затем нажмите кнопку "Да".
- Дождитесь завершения.
Затем выполните следующие действия, чтобы восстановить резервную копию основного кластера AKS в дополнительный кластер AKS:
В портал Azure в поле поиска введите центр резервного копирования и выберите центр резервного копирования из результатов поиска.
В разделе "Управление" выберите экземпляры резервного копирования. Фильтрация по типу источника данных Kubernetes Services. Найдите экземпляр резервной копии, созданный в предыдущем разделе, например
<aks-cluster-name>\akseastusmjg032524
.Выберите экземпляр резервного копирования.
Выберите Восстановить.
На странице "Восстановление" область по умолчанию — точка восстановления. Выберите "Назад", чтобы изменить область "Основные сведения". Чтобы восстановить регион, выберите дополнительный регион, а затем нажмите кнопку "Далее: точка восстановления".
На панели "Точка восстановления" выбрана последняя рабочая и стандартная точка восстановления хранилища. Сохраните значения по умолчанию и нажмите кнопку "Далее: восстановить параметры".
На панели параметров восстановления выполните следующие действия.
Для выбора целевого кластера выберите вторичный кластер AKS, созданный в регионе "Западная часть США". Возникла проблема с разрешением, как показано на следующем снимке экрана. Выберите "Предоставить разрешение", чтобы устранить ошибки.
Для промежуточного расположения резервного копирования выберите учетную запись хранения, созданную в регионе "Западная часть США". Возникла проблема с разрешением, как показано на следующем снимке экрана. Выберите " Назначить отсутствующие роли ", чтобы устранить ошибки.
Если ошибки по-прежнему возникают после завершения назначений ролей, выберите повторную настройку, чтобы обновить разрешения.
При предоставлении отсутствующих разрешений, если будет предложено указать область, примите значение по умолчанию.
Выберите Проверить. Должно появиться сообщение
Validation completed successfully
. В противном случае перед продолжением устраните проблему и устраните ее.
Нажмите кнопку Далее: проверка и создание. Затем выберите Восстановить. Восстановление кластера занимает около 10 минут.
Вы можете отслеживать процесс восстановления из заданий резервного копирования> и создания отчетов>о резервном копировании, как показано на следующем снимке экрана:
Подождите некоторое время, а затем нажмите кнопку "Обновить". Повторите операцию, пока не увидите, что состояние будет завершено.
Затем выполните следующие действия, чтобы убедиться, что восстановление работает должным образом:
Перейдите в терминал, в котором вы подключились к вторичному кластеру AKS.
Выполните следующую команду, чтобы получить пример приложения, восстановленного из резервной копии:
kubectl get OpenLibertyApplication
В выходных данных должно появиться одно приложение READY :
NAME IMAGE EXPOSED RECONCILED RESOURCESREADY READY AGE javaee-cafe-cluster-agic acr3984d1.azurecr.io/javaee-cafe:v1 True True True 3m
Выполните следующую команду, чтобы получить состояние модулей pod, созданных во время развертывания:
kubectl get pods
В выходных данных должны отображаться три выполняющихся модуля pod:
NAME READY STATUS RESTARTS AGE javaee-cafe-cluster-agic-7bb57dd945-6ljll 1/1 Running 0 3m javaee-cafe-cluster-agic-7bb57dd945-h2xdf 1/1 Running 0 3m javaee-cafe-cluster-agic-7bb57dd945-k744w 1/1 Running 0 3m
Перейдите на вкладку браузера профиля Диспетчер трафика, а затем обновите страницу, пока не увидите, что состояние монитора для конечной точки находится в сети, а состояние монитора для конечной
myFailoverEndpoint
точкиmyPrimaryEndpoint
снижается.Перейдите на вкладку браузера с DNS-именем профиля Диспетчер трафика , например
https://tmprofile-mjg032524.trafficmanager.net
. Обновите страницу, и вы увидите те же данные, которые сохраняются в таблице данных приложения, а таблица сеансов отображается. Отображаемый пользовательский интерфейс должен быть похож на следующий снимок экрана:Если вы не видите это поведение, это может быть связано с тем, что Диспетчер трафика занимает время для обновления DNS, чтобы указать на сайт отработки отказа. Проблема также может быть в том, что браузер кэшировал результат разрешения DNS-имен, указывающий на сбой сайта. Подождите некоторое время и снова обновите страницу.
Примечание.
Приложение настраивает время ожидания сеанса как 1 час. В зависимости от того, сколько времени потребовалось отработка отказа, возможно, данные сеанса не отображаются в разделе "Новый кофе " примера пользовательского интерфейса приложения, если срок действия истек более одного часа ранее.
Повторно защитить сайт отработки отказа
Теперь, когда дополнительный регион является сайтом отработки отказа и активен, необходимо повторно защитить его с помощью Azure Backup.
Во-первых, выполните те же действия, что и в разделе Резервное копирование кластера AKS для резервного копирования вторичного кластера AKS, за исключением следующих различий:
- Для создания хранилища резервных копий выполните следующие действия.
- Для группы ресурсов выберите существующую группу ресурсов, развернутую в дополнительном регионе, например
liberty-aks-westus-mjg032524
. - В качестве имени хранилища резервных копий введите уникальное значение, например
aks-backup-vault-westus-mjg032524
. - В поле Регион выберите Западная часть США.
- Для группы ресурсов выберите существующую группу ресурсов, развернутую в дополнительном регионе, например
- Чтобы создать политику резервного копирования, выполните следующие действия.
- Выберите хранилище резервных копий, созданное в дополнительном регионе, например
aks-backup-vault-westus-mjg032524
.
- Выберите хранилище резервных копий, созданное в дополнительном регионе, например
- Для настройки резервных копий выполните следующие действия.
- Выберите хранилище резервных копий, созданное в дополнительном регионе, например
aks-backup-vault-westus-mjg032524
. - Для имени экземпляра резервного копирования введите уникальное имя, например
akswestusmjg032524
.
- Выберите хранилище резервных копий, созданное в дополнительном регионе, например
Затем выполните те же действия, описанные в разделе "Ожидание стандартной резервной копии Хранилища", чтобы ждать, пока не будет доступно стандартное резервное копирование дополнительного кластера AKS, за исключением выбора экземпляра резервного копирования на странице резервного копирования вторичного кластера AKS.
Отработка отказа на основной сайт
Выполните те же действия, что и в разделе "Отработка отказа" на дополнительный сайт, чтобы вернуться к основному сайту, включая сервер базы данных и кластер AKS, за исключением следующих различий:
При подготовке к возврату размещения выполните следующие действия.
- Остановите вторичный кластер AKS, чтобы имитировать сбой дополнительного региона.
- Запустите основной кластер AKS.
- Подключитесь к основному кластеру AKS и очистите приложения WebSphere Liberty/Open Liberty.
При восстановлении резервной копии вторичного кластера AKS в основной кластер AKS выполните следующие действия.
- Выберите экземпляр резервного копирования в дополнительном регионе, например
<aks-cluster-name>\akswestusmjg032524
. - В области параметров восстановления выполните следующие действия.
- Для выбора целевого кластера выберите основной кластер AKS, созданный в регионе "Восточная часть США".
- Для промежуточного расположения резервного копирования выберите учетную запись хранения, созданную в регионе "Восточная часть США".
- Выберите экземпляр резервного копирования в дополнительном регионе, например
Убедившись, что восстановление работает должным образом, выполните следующие действия.
- Перейдите в терминал, в котором подключены к основному кластеру AKS, и убедитесь, что приложение успешно восстановлено.
- Перейдите на вкладку браузера профиля Диспетчер трафика, а затем обновите страницу, пока не увидите, что состояние монитора для конечной точки находится в сети, а состояние монитора для конечной
myPrimaryEndpoint
точкиmyFailoverEndpoint
снижается.
Очистка ресурсов
Если вы не собираетесь продолжать использовать кластеры WebSphere Liberty/Open Liberty и другие компоненты, выполните следующие действия, чтобы удалить группы ресурсов для очистки ресурсов, используемых в этом руководстве:
- В портал Azure поле поиска введите имя группы ресурсов База данных SQL Azure серверов , например,
myResourceGroup
и выберите соответствующую группу ресурсов из результатов поиска. - Выберите команду Удалить группу ресурсов.
- Введите имя группы ресурсов, чтобы подтвердить удаление, введите имя группы ресурсов.
- Выберите команду Удалить.
- Повторите шаги 1-4 для группы ресурсов Диспетчер трафика, например
myResourceGroupTM1
. - В портал Azure в поле поиска введите хранилища резервных копий и выберите хранилища резервных копий из результатов поиска. Вы должны увидеть два хранилища резервных копий, например
aks-backup-vault-eastus-mjg032524
иaks-backup-vault-westus-mjg032524
. Для каждого из них выполните следующие действия.- Выберите, чтобы открыть хранилище резервных копий.
- Выберите "Управление свойствами>>обратимого удаления".> Рядом с параметром "Включить обратимое удаление", установите флажок и нажмите кнопку "Обновить".
- Выберите "Управление>экземплярами резервного копирования". Фильтрация по типу источника данных Kubernetes Services. Выберите созданный экземпляр и удалите его.
- Дождитесь удаления двух экземпляров резервного копирования.
- Повторите шаги 1–4 для группы ресурсов основного кластера, например
liberty-aks-eastus-mjg032524
. - Повторите шаги 1–4 для группы ресурсов вторичного кластера, например
liberty-aks-westus-mjg032524
.
Следующие шаги
В этом руководстве описано, как настроить решение WebSphere Liberty/Open Liberty HA/DR, состоящее из уровня инфраструктуры приложений "активный- пассивный" с уровнем базы данных "активный- пассивный" и в котором оба уровня охватывают два географически разных сайта. На первом сайте активны как уровень инфраструктуры приложений, так и уровень базы данных. На втором сайте дополнительный домен восстанавливается с помощью Azure Backup, а база данных-получатель находится в режиме ожидания.
Перейдите к следующим ссылкам для получения дополнительных возможностей для создания решений высокой доступности и аварийного восстановления и запуска WebSphere в Azure: