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


Руководство по миграции локального шлюза

ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Премия

В этой статье описано, как перенести существующие развертывания локального шлюза на локальный шлюз версии 2.

Внимание

Поддержка azure Управление API локального шлюза версии 0 и версии 1 образов контейнеров заканчивается 1 октября 2023 г. вместе с соответствующим API конфигурации версии 1. Дополнительные сведения см. в нашей документации по нерекомендуемым

Новые возможности

Так как мы стремимся упростить клиентам развертывание нашего локального шлюза, мы представили новый API конфигурации, который устраняет зависимость от службы хранилища Azure, если только вы не используете инспектор API или квоты.

Новый API конфигурации позволяет клиентам без усилий внедрять, развертывать и использовать наш локальный шлюз в своей существующей инфраструктуре.

Мы представили новые теги образа контейнера, чтобы клиенты могли выбрать лучший способ опробовать наш шлюз и развернуть его в рабочей среде.

Чтобы помочь клиентам запустить наш шлюз в производственной среде, мы расширили соответствующее руководство с описанием того, как автоматически масштабировать шлюз и развернуть его для обеспечения высокой доступности в кластере Kubernetes.

Узнайте больше о возможностях подключения нашего шлюза, наших новых требованиях к инфраструктуре и о том, что произойдет, если подключение будет потеряно, из этой статьи.

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

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

Миграция на локальный шлюз версии 2

Для миграции с локального шлюза версии 2 необходимо выполнить несколько действий:

  1. Использовать новый образ контейнера.
  2. Использовать новый API конфигурации.
  3. Обеспечить соответствие требованиям к безопасности.

Образ контейнера

Измените тег изображения в скриптах развертывания, чтобы использовать 2.0.0 или более позднюю версию.

Или выберите один из других тегов образа контейнера.

Полный список доступных тегов см. здесь или в Docker Hub.

Использование нового API конфигурации

Чтобы перейти на локальный шлюз версии 2, клиенты должны использовать наш новый API конфигурации версии 2.

Сейчас Управление API Azure предоставляет следующие API конфигурации для локального шлюза:

Служба конфигурации URL Поддерживается Требования
Версия 2 {name}.configuration.azure-api.net Да Ссылка
Версия 1 {name}.management.azure-api.net/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.ApiManagement/service/{name}?api-version=2021-01-01-preview No Ссылка

Клиент должен использовать новый API конфигурации версии 2, изменив свои скрипты развертывания, чтобы использовать новый URL-адрес и обеспечить соответствие требованиям к инфраструктуре.

Внимание

  • Имя узла DNS должно быть разрешаемым для IP-адресов, а соответствующие IP-адреса должны быть доступными. Для этого может потребоваться дополнительная настройка, если вы используете частный DNS, внутреннюю виртуальную сеть или другие требования к инфраструктуре.

Безопасность

Доступные наборы шифров TLS

При запуске локальный шлюз версии 2.0 использовал только коллекцию наборов шифров, которые использовала версия 1.x. По состоянию на версию 2.0.4 мы вернули все поддерживаемые наборы шифров версии 1.x.

Вы можете узнать больше об используемых наборах шифров из этой статьи или использовать версию 2.1.1, чтобы управлять тем, какие наборы шифров использовать.

Обеспечить соответствие требованиям к безопасности.

Во время запуска локальный шлюз подготовит сертификаты ЦС, которые будут использоваться. Для этого требуется, чтобы контейнер шлюза работал как минимум с идентификатором пользователя 1001 и не мог использовать файловую систему только для чтения.

При настройке контекста безопасности для контейнера в Kubernetes требуется как минимум следующее:

securityContext:
  runAsNonRoot: true
  runAsUser: 1001
  readOnlyRootFilesystem: false

При этом в версии 2.0.3 локальный шлюз может работать в Kubernetes как некорневой, что позволяет клиентам более безопасно запускать его.

Пример контекста безопасности для локального шлюза:

securityContext:
  allowPrivilegeEscalation: false
  runAsNonRoot: true
  runAsUser: 1001       # This is a built-in user, but you can use any user ie 1000 as well
  runAsGroup: 2000      # This is just an example
  privileged: false
  capabilities:
    drop:
    - all

Предупреждение

Запуск локального шлюза с файловой системой, предназначенной только для чтения (readOnlyRootFilesystem: true), не поддерживается.

Оценка влияния с помощью Помощника по Azure

Чтобы упростить миграцию, мы представили новые рекомендации Помощника по Azure:

  • Использование рекомендации по локальному шлюзу версии 2. Определяет экземпляры Управления API, в которых было определено использование локального шлюза версии 0.x или v1.x.
  • Использование рекомендации по API конфигурации версии 2 по локальным шлюзам. Определяет экземпляры Управления API, в которых было определено использование API конфигурации версии 1 для локального шлюза.

Мы настоятельно рекомендуем клиентам использовать обзор "Все рекомендации" в Помощнике по Azure, чтобы определить, требуется ли миграция. Используйте параметры фильтрации, чтобы узнать, присутствует ли одна из приведенных выше рекомендаций.

Использование Azure Resource Graph для идентификации экземпляров Управление API Azure

Этот запрос Azure Resource Graph предоставляет список затронутых экземпляров Azure Управление API:

AdvisorResources
| where type == 'microsoft.advisor/recommendations'
| where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence'
| extend
    recommendationTitle = properties.shortDescription.solution
| where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways'
| extend
    instanceName = properties.impactedValue,
    recommendationImpact = properties.impact,
    recommendationMetadata = properties.extendedProperties,
    lastUpdated = properties.lastUpdated
| project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, recommendationMetadata, lastUpdated
az graph query -q "AdvisorResources | where type == 'microsoft.advisor/recommendations' | where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence' | extend recommendationTitle = properties.shortDescription.solution | where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways' | extend instanceName = properties.impactedValue, recommendationImpact = properties.impact, recommendationMetadata = properties.extendedProperties, lastUpdated = properties.lastUpdated | project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, lastUpdated"

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

Список известных ограничений для локального шлюза версии 2:

  • API конфигурации версии 2 не поддерживает имена личных доменов.

Следующие шаги