Руководство по интеграции администратора для Spring с Eureka Server для Spring в приложениях контейнеров Azure
В этом руководстве описан процесс интеграции управляемого администратора для Spring с сервером Eureka server for Spring в приложениях контейнеров Azure.
В этой статье содержится некоторое содержимое, аналогичное руководству по подключению к управляемому администратору для Spring в приложениях контейнеров Azure, но с помощью Eureka Server for Spring можно привязать admin for Spring to Eureka Server for Spring, чтобы получить сведения о приложении через Eureka, а не привязать отдельные приложения к Admin for Spring.
Следуя этому руководству, вы настроите сервер Eureka для обнаружения служб, а затем создадите администратора для Spring для управления приложениями Spring, зарегистрированными на сервере Eureka. Эта настройка гарантирует, что другие приложения должны быть привязаны только к серверу Eureka, упрощая управление микрослужбами.
Из этого руководства вы узнаете, как:
- Создайте сервер Eureka для Spring.
- Создайте администратора для Spring и свяжите его с сервером Eureka.
- Привязать другие приложения к серверу Eureka для упрощения обнаружения и управления службами.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если у вас еще нет, его можно создать бесплатно.
- Azure CLI.
- Существующий компонент Eureka Server для Spring Java. Если у вас нет этого сервера, см. статью "Создание сервера Eureka для Spring".
Рекомендации
При запуске управляемых компонентов Java в приложениях контейнеров Azure следует учитывать следующие сведения:
Товар | Описание |
---|---|
Область | Компоненты выполняются в той же среде, что и подключенное приложение контейнера. |
Масштабирование | Компонент не может масштабироваться. Свойства minReplicas масштабирования и maxReplicas имеют значение . 1 . |
Ресурсы | Исправлено выделение ресурсов контейнера для компонентов. Число ядер ЦП равно 0,5, а размер памяти — 1 Ги. |
Цены | Выставление счетов на основе компонентов зависит от цен на основе потребления. Счета за ресурсы, потребляемые управляемыми компонентами, выставляются по тарифам "активный или простой". Вы можете удалить компоненты, которые больше не используются для остановки выставления счетов. |
Привязка | Приложения-контейнеры подключаются к компоненту через привязку. Привязки внедряют конфигурации в переменные среды приложения-контейнера. После установки привязки приложение-контейнер может считывать значения конфигурации из переменных среды и подключаться к компоненту. |
Настройка
Прежде чем начать, создайте необходимые ресурсы, выполнив следующие команды.
Создайте переменные для поддержки конфигурации приложения. Эти значения предоставляются для вас в целях этого урока.
export LOCATION=eastus export RESOURCE_GROUP=my-services-resource-group export ENVIRONMENT=my-environment export EUREKA_COMPONENT_NAME=eureka export ADMIN_COMPONENT_NAME=admin export CLIENT_APP_NAME=sample-service-eureka-client export CLIENT_IMAGE="mcr.microsoft.com/javacomponents/samples/sample-admin-for-spring-client:latest"
«Переменная» Description LOCATION
Расположение региона Azure, в котором создается приложение контейнера и компоненты Java. RESOURCE_GROUP
Имя группы ресурсов Azure для демонстрационного приложения. ENVIRONMENT
Имя среды "Приложения контейнеров Azure" для демонстрационного приложения. EUREKA_COMPONENT_NAME
Имя компонента Java для сервера Eureka. ADMIN_COMPONENT_NAME
Имя компонента Admin for Spring Java. CLIENT_APP_NAME
Имя приложения-контейнера, которое привязывается к серверу Eureka. CLIENT_IMAGE
Образ контейнера, используемый в приложении контейнера Eureka Server. Войдите в Azure с помощью Azure CLI.
az login
Создать группу ресурсов.
az group create --name $RESOURCE_GROUP --location $LOCATION
Создайте среду приложений контейнеров.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"
--query
Использование параметра фильтрует ответ до простого сообщения об успешном выполнении или сбое.
Необязательно. Создание сервера Eureka для Spring
Если у вас нет существующего сервера Eureka для Spring, выполните следующую команду, чтобы создать компонент Java для сервера Eureka. Дополнительные сведения см. в разделе "Создание сервера Eureka для Spring".
az containerapp env java-component eureka-server-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_NAME
Связывание компонентов вместе
Создайте компонент Admin for Spring Java.
az containerapp env java-component admin-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $ADMIN_COMPONENT_NAME \
--min-replicas 1 \
--max-replicas 1 \
--bind $EUREKA_COMPONENT_NAME
Привязка других приложений к серверу Eureka
Настроив сервер Eureka, вы можете привязать к нему другие приложения для обнаружения служб. Кроме того, вы можете отслеживать и управлять этими приложениями на панели мониторинга администратора для Spring. Чтобы создать и привязать приложение контейнера к серверу Eureka, выполните следующие действия.
Создайте приложение-контейнер и привязать его к серверу Eureka Server.
az containerapp create \
--name $CLIENT_APP_NAME \
--resource-group $RESOURCE_GROUP \
--environment $ENVIRONMENT \
--image $CLIENT_IMAGE \
--min-replicas 1 \
--max-replicas 1 \
--ingress external \
--target-port 8080 \
--bind $EUREKA_COMPONENT_NAME
Совет
Так как предыдущие шаги привязали компонент Admin for Spring к компоненту Eureka Server for Spring, компонент администрирования включает обнаружение служб и позволяет управлять им с помощью панели мониторинга Admin for Spring одновременно.
Просмотр панелей мониторинга
Внимание
Чтобы просмотреть панель мониторинга, необходимо иметь по крайней мере Microsoft.App/managedEnvironments/write
роль, назначенную учетной записи в ресурсе управляемой среды. Вы можете явно назначить Owner
или роль в ресурсе или Contributor
выполнить действия, чтобы создать пользовательское определение роли и назначить его учетной записи.
Создайте определение настраиваемой роли.
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>"] }'
Обязательно замените
<SUBSCRIPTION_ID>
заполнитель в значенииAssignableScopes
идентификатором подписки.Назначьте настраиваемую роль учетной записи в ресурсе управляемой среды.
Получите идентификатор ресурса управляемой среды.
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)
Назначьте роль учетной записи.
Перед выполнением этой команды замените заполнитель идентификатором
<USER_OR_SERVICE_PRINCIPAL_ID>
пользователя или субъекта-службы.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "Java Component Dashboard Access" \ --scope $ENVIRONMENT_ID
Получите URL-адрес панели мониторинга admin for Spring.
az containerapp env java-component admin-for-spring show \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $ADMIN_COMPONENT_NAME \ --query properties.ingress.fqdn \ --output tsv
Получите URL-адрес панели мониторинга Eureka Server для Spring.
az containerapp env java-component eureka-server-for-spring show \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_NAME \ --query properties.ingress.fqdn \ --output tsv
Эта команда возвращает URL-адрес, который можно использовать для доступа к панели мониторинга Eureka Server для Spring. С помощью панели мониторинга приложение-контейнер также относится к вам, как показано на следующем снимке экрана.
Очистка ресурсов
Ресурсы, созданные в этом руководстве, влияют на счет Azure. Если вы не собираетесь использовать эти службы в долгосрочной перспективе, выполните следующую команду, чтобы удалить все, созданное в этом руководстве.
az group delete --resource-group $RESOURCE_GROUP