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


Перенос реестра служб Eureka Server или Tanzu на управляемый сервер Eureka для Spring в приложениях контейнеров Azure

Примечание.

Планы Basic, Standardи Enterprise вступили в период вывода из обращения 17 марта 2025 года. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.

Эта статья относится к:✅ Basic/Standard ✅ Enterprise

В этой статье описывается, как перенести Eureka Server на Eureka Server for Spring в приложениях контейнеров Azure.

Управляемый сервер Eureka для Azure Container Apps в среде Spring предлагает опыт, аналогичный Azure Spring Apps. Он позволяет развертывать существующие приложения Spring, не изменяя исходный код и регистрируя их на управляемом сервере Eureka.

Предварительные условия

  • Существующий экземпляр плана Azure Spring Apps Enterprise с включенным реестром служб Tanzu.
  • Существующая среда приложения-контейнера Azure, используемая для развертывания приложений. Для получения дополнительной информации, см. "Настройка приложений контейнеров Azure".
  • Образ контейнера приложения, выступающего в качестве клиента Eureka. При необходимости можно использовать образец mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest.
  • Azure CLI.

Подготовка управляемого сервера Eureka для Spring

Чтобы использовать управляемый сервер Eureka для Spring, сначала необходимо создать компонент Сервера Eureka в среде приложений контейнеров Azure.

Чтобы создать управляемый сервер Eureka для Spring, выполните следующие действия.

  1. Чтобы создать компонент Eureka Server для Spring Java, используйте следующую команду:

    az containerapp env java-component eureka-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_NAME \
        --environment $ENVIRONMENT
    
  2. (Необязательно) Чтобы обновить конфигурацию компонента Eureka Server для Spring Java, используйте следующую команду:

    az containerapp env java-component eureka-server-for-spring update \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_NAME \
        --environment $ENVIRONMENT \
        --configuration eureka.server.renewal-percent-threshold=0.85 eureka.server.eviction-interval-timer-in-ms=10000
    

При удалении управляемого сервера Eureka через портал Azure приложения контейнеров Azure автоматически отменяют привязку всех приложений контейнеров, зарегистрированных в нем, и удаляет управляемый сервер Eureka. Это поведение отличается от плана Azure Spring Apps Enterprise, где необходимо вручную отменить привязку служб перед удалением реестра служб Tanzu.

Выделение ресурсов и цены

Распределение ресурсов контейнера для управляемого сервера Eureka в приложениях контейнеров Azure исправлено следующими значениями:

  • ЦП: 0,5 vCPU
  • Память: 1 Ги
  • Реплики: 1 — не масштабируемые

В отличие от этого, реестр служб планов Azure Spring Apps Enterprise также подготавливает фиксированные ресурсы, но включает две реплики, каждая из которых содержит 0,5 виртуальных ЦП и 1 Гим памяти.

В отличие от планов "Базовый" и "Стандартный" в приложениях Azure Spring, за которые не взимается плата, управляемый сервер Eureka для Spring в приложениях Azure Container работает на основе потребления. Эта цена аналогична ценам на план Azure Spring Apps Enterprise.

Дополнительные сведения см. в разделе "Соображения учебного пособия Подключение к управляемому серверу Eureka для Spring в приложениях контейнеров Azure.

Развертывание и привязка приложения

После подготовки управляемого сервера Eureka для Spring вы можете развернуть приложение Spring в приложениях контейнеров Azure и привязать его к серверу Eureka Server. Этот процесс аналогичен работе плана предприятия в Azure Spring Apps. В частности, необходимо привязать приложение к серверу Eureka, который отличается от плана Azure Spring Apps Basic/Standard, где привязка не требуется.

Примечание.

Если вы не используете образ mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest для развертывания приложения, вам, возможно, потребуется выполнить некоторые настройки, чтобы Azure Container Apps могли извлекать образы из вашего реестра контейнеров. Например, чтобы подготовить необходимые разрешения для извлечения образов из Реестра контейнеров Azure (ACR), см. раздел "Создание Реестра контейнеров Azure" в руководстве по "Созданию и развертыванию приложения в контейнерные приложения Azure".

Развертывание приложения

Чтобы создать приложение контейнера, используйте следующую команду:

az containerapp create \
    --resource-group $RESOURCE_GROUP \
    --name $APP_NAME \
    --environment $ENVIRONMENT \
    --image $IMAGE \
    --min-replicas 1 \
    --max-replicas 1 \
    --ingress external \
    --target-port 8080 \
    --query properties.configuration.ingress.fqdn

Привяжите приложение

После успешного создания приложения можно привязать приложение к управляемому серверу Eureka.

Используйте следующую команду, чтобы привязать созданное приложение к серверу Eureka:

az containerapp update \
    --resource-group $RESOURCE_GROUP \
    --name $APP_NAME \
    --bind $EUREKA_COMPONENT_NAME \
    --query properties.configuration.ingress.fqdn

Привязка внедряет в приложение несколько конфигураций в качестве переменных среды, в первую очередь eureka.client.service-url.defaultZone свойство. Это свойство указывает внутреннюю конечную точку компонента Java сервера Eureka. Дополнительную информацию о других свойствах смотрите в разделе "Привязка приложения контейнера к серверу Eureka для компонента Spring Java" в документе "Подключение к управляемому серверу Eureka для Spring в приложениях контейнеров Azure".

Если вам нужно отвязать приложение от сервера Eureka, просмотрите раздел Отвязка вашего контейнерного приложения от сервера Eureka для компонента Spring Java из документации Подключение к управляемому серверу Eureka для Spring в Azure Container Apps.

Просмотр зарегистрированных приложений с помощью панели мониторинга

После успешного создания приложения и привязки его к Серверу Eureka можно просмотреть зарегистрированные приложения с помощью панели мониторинга управления. Дополнительные сведения см. в разделе «Просмотр приложения через панель управления» в разделе «Подключение к управляемому серверу Eureka для Spring в приложениях контейнеров Azure».

На следующем снимке экрана показан пример того, как выглядит панель мониторинга Eureka Server:

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

Устранение неполадок

Журналы управляемого сервера Eureka для Spring в приложениях контейнеров Azure можно просмотреть с помощью Log Analytics, который работает аналогично механизму ведения журнала в Azure Spring Apps.

Чтобы просмотреть управляемые журналы Eureka Server для Spring в приложениях контейнеров Azure, выполните следующие действия.

  1. Перейдите на страницу среды окружения контейнерного приложения.

  2. Перейдите к и в разделе > журналов" убедитесь, что выбран Azure Log Analytics.

  3. Перейдите к .

  4. (Необязательно) Если область Log Analytics не соответствует заданной в параметрах ведения журнала, выберите "Выбрать область ", чтобы выбрать правильную рабочую область log analytics.

  5. Введите запрос в редактор запросов, чтобы просмотреть журналы из таблицы ContainerAppSystemLogs_CL , как показано в следующем примере:

    ContainerAppSystemLogs_CL
    | where ComponentType_s == "SpringCloudEureka"
    | project Time=TimeGenerated, ComponentName=ComponentName_s, Message=Log_s
    | take 100
    

    Снимок экрана: запрос log analytics для Eureka Server.

Дополнительные сведения о запросах журналов с помощью Azure CLI см. в статье "Мониторинг журналов в приложениях контейнеров Azure" с помощью Log Analytics.

Известные ограничения

  • Внешний доступ: Управляемый сервер Eureka для Spring в приложениях контейнеров Azure недоступен извне.
  • Ревизионный трафик: в многоверсионном режиме контейнерных приложений Azure все реплики приложения, зарегистрированные в Eureka, получают трафик.

Дополнительные ресурсы

Дополнительные сведения об управлении Сервером Eureka в приложениях контейнеров Azure см. в руководстве по подключению к управляемому серверу Eureka server for Spring в приложениях контейнеров Azure.