Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве вы узнаете, как создать службу Eureka, предназначенную для сохранения работы в условиях сбоев и высокого спроса. Создание высокодоступной службы Eureka помогает гарантировать, что реестр служб, используемый для приложений контейнеров Azure, всегда доступен клиентам независимо от спроса.
Обеспечение высокого уровня доступности для Eureka включает связывание нескольких экземпляров сервера Eureka, чтобы они формируют кластер. Кластер предоставляет ресурсы, чтобы при сбое одного сервера Eureka другие службы оставались доступными для запросов.
Изучив это руководство, вы:
- Создайте серверы Eureka для компонентов Spring.
- Привязка двух серверов Eureka для компонентов Spring к кластеру.
- Привяжите приложение-контейнер к обоим серверам Eureka для обеспечения высокодоступного обнаружения служб.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если у вас еще нет, его можно создать бесплатно.
- Интерфейс командной строки Azure.
Рекомендации
При запуске управляемых компонентов Java в контейнерных приложениях следует учитывать следующие сведения:
| Товар | Описание |
|---|---|
| Область | Компоненты выполняются в той же среде, что и подключенное приложение контейнера. |
| Масштабирование | Компоненты не могут масштабироваться. Свойства minReplicas масштабирования и maxReplicas имеют значение . 1. |
| Ресурсы | Исправлено выделение ресурсов контейнера для компонентов. Число ядер ЦП равно 0,5, а размер памяти составляет 1 ГБ. |
| Цены | Выставление счетов на основе компонентов зависит от цен на основе потребления. Счета за ресурсы, используемые управляемыми компонентами, выставляются по активным или бездействуемым тарифам в зависимости от использования ресурсов. Вы можете удалить компоненты, которые больше не используются для остановки выставления счетов. |
| Привязка | Приложения-контейнеры подключаются к компоненту через привязку. Привязки внедряют конфигурации в переменные среды приложения-контейнера. После установки привязки приложение-контейнер может считывать значения конфигурации из переменных среды и подключаться к компоненту. |
Настройка начальных ресурсов
Выполните следующие действия, чтобы создать некоторые ресурсы, необходимые для кластера служб Eureka.
Создайте переменные, которые содержат значения конфигурации приложения.
export LOCATION=eastus export RESOURCE_GROUP=my-services-resource-group export ENVIRONMENT=my-environment export EUREKA_COMPONENT_FIRST=eureka01 export EUREKA_COMPONENT_SECOND=eureka02 export APP_NAME=sample-service-eureka-client export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest"Используйте Azure CLI для входа в Azure.
az loginСоздать группу ресурсов.
az group create --name $RESOURCE_GROUP --location $LOCATIONСоздайте среду приложений контейнеров.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Создание серверов для кластера
Создайте два компонента Eureka Server для Spring.
az containerapp env java-component eureka-server-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_FIRST
az containerapp env java-component eureka-server-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_SECOND
Привязка компонентов к кластеру
Чтобы серверы Eureka работали в конфигурации высокой доступности, они должны быть связаны как кластер.
Привязать первый сервер Eureka ко второму.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_FIRST \ --bind $EUREKA_COMPONENT_SECONDПривязать второй сервер Eureka к первому.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_SECOND \ --bind $EUREKA_COMPONENT_FIRST
Развертывание и привязка приложения
С помощью компонентов сервера, связанных вместе, можно создать приложение-контейнер и привязать его к двум компонентам Eureka.
Создайте приложение-контейнер.
az containerapp create \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT \ --image $IMAGE \ --min-replicas 1 \ --max-replicas 1 \ --ingress external \ --target-port 8080Привязите приложение-контейнер к первому компоненту сервера Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_FIRSTПривязите приложение-контейнер ко второму компоненту сервера Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_SECOND
Просмотр панели мониторинга
Внимание
Чтобы просматривать панель мониторинга Eureka Server для Spring, для вашей учетной записи в среде "Приложения контейнеров" должен быть назначен один из следующих ролей: Microsoft.App/managedEnvironments/write, Owner, или Contributor.
- Если у вас уже есть одна из этих ролей, перейдите к разделу "Получить URL-адрес панели мониторинга ", чтобы получить URL-адрес и просмотреть панель мониторинга.
- Если вы хотите создать определение пользовательской роли и назначить его учетной записи, выполните действия, описанные в следующем разделе, создайте и назначьте настраиваемую роль.
- Если вы хотите назначить учетной записи роль
OwnerилиContributorдля ресурса, сделайте это назначение и перейдите к разделу "Получить URL-адрес панели мониторинга".
Создание и назначение настраиваемой роли
Создайте определение настраиваемой роли. Перед выполнением этой команды замените заполнитель в значении
AssignableScopesидентификатором подписки.az role definition create --role-definition '{ "Name": "Java Component Dashboard Access", "IsCustom": true, "Description": "Can access managed Java Component dashboards in managed environments", "Actions": [ "Microsoft.App/managedEnvironments/write" ], "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"] }'Получите идентификатор ресурса среды "Приложения контейнеров".
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)Назначьте настраиваемую роль вашему аккаунту для ресурса среды "Контейнерные приложения". Перед выполнением этой команды замените заполнитель в значении
assigneeидентификатором объекта пользователя или идентификатором субъекта-службы.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "Java Component Dashboard Access" \ --scope $ENVIRONMENT_ID
Получение URL-адреса панели мониторинга
Получите URL-адрес панели мониторинга Eureka Server для Spring.
az containerapp env java-component eureka-server-for-spring show \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_FIRST \
--query properties.ingress.fqdn \
--output tsv
Эта команда возвращает URL-адрес, который можно использовать для доступа к панели мониторинга Eureka Server для Spring. На панели мониторинга можно убедиться, что настройка сервера Eureka состоит из двух реплик.
Очистка ресурсов
Ресурсы, созданные в этом руководстве, влияют на расходы в Azure. Если вы не собираетесь использовать эти службы в долгосрочной перспективе, выполните следующую команду, чтобы удалить все, созданное в этом руководстве.
az group delete --resource-group $RESOURCE_GROUP