Поделиться через


Руководство по интеграции администратора для 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, упрощая управление микрослужбами.

Из этого руководства вы узнаете, как:

  1. Создайте сервер Eureka для Spring.
  2. Создайте администратора для Spring и свяжите его с сервером Eureka.
  3. Привязать другие приложения к серверу Eureka для упрощения обнаружения и управления службами.

Необходимые компоненты

Рекомендации

При запуске управляемых компонентов Java в приложениях контейнеров Azure следует учитывать следующие сведения:

Товар Описание
Область Компоненты выполняются в той же среде, что и подключенное приложение контейнера.
Масштабирование Компонент не может масштабироваться. Свойства minReplicas масштабирования и maxReplicas имеют значение . 1.
Ресурсы Исправлено выделение ресурсов контейнера для компонентов. Число ядер ЦП равно 0,5, а размер памяти — 1 Ги.
Цены Выставление счетов на основе компонентов зависит от цен на основе потребления. Счета за ресурсы, потребляемые управляемыми компонентами, выставляются по тарифам "активный или простой". Вы можете удалить компоненты, которые больше не используются для остановки выставления счетов.
Привязка Приложения-контейнеры подключаются к компоненту через привязку. Привязки внедряют конфигурации в переменные среды приложения-контейнера. После установки привязки приложение-контейнер может считывать значения конфигурации из переменных среды и подключаться к компоненту.

Настройка

Прежде чем начать, создайте необходимые ресурсы, выполнив следующие команды.

  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.
  2. Войдите в Azure с помощью Azure CLI.

    az login
    
  3. Создать группу ресурсов.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Создайте среду приложений контейнеров.

    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 выполнить действия, чтобы создать пользовательское определение роли и назначить его учетной записи.

  1. Создайте определение настраиваемой роли.

    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 идентификатором подписки.

  2. Назначьте настраиваемую роль учетной записи в ресурсе управляемой среды.

    Получите идентификатор ресурса управляемой среды.

    export ENVIRONMENT_ID=$(az containerapp env show \
        --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    
  3. Назначьте роль учетной записи.

    Перед выполнением этой команды замените заполнитель идентификатором <USER_OR_SERVICE_PRINCIPAL_ID> пользователя или субъекта-службы.

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Java Component Dashboard Access" \
        --scope $ENVIRONMENT_ID
    
  4. Получите 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
    
  5. Получите 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. С помощью панели мониторинга приложение-контейнер также относится к вам, как показано на следующем снимке экрана.

    Снимок экрана: панель мониторинга admin for Spring.

    Снимок экрана: панель мониторинга Eureka Server for Spring.

Очистка ресурсов

Ресурсы, созданные в этом руководстве, влияют на счет Azure. Если вы не собираетесь использовать эти службы в долгосрочной перспективе, выполните следующую команду, чтобы удалить все, созданное в этом руководстве.

az group delete --resource-group $RESOURCE_GROUP