Руководство по миграции локального шлюза
ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Премия
В этой статье описано, как перенести существующие развертывания локального шлюза на локальный шлюз версии 2.
Внимание
Поддержка azure Управление API локального шлюза версии 0 и версии 1 образов контейнеров заканчивается 1 октября 2023 г. вместе с соответствующим API конфигурации версии 1. Дополнительные сведения см. в нашей документации по нерекомендуемым
Новые возможности
Так как мы стремимся упростить клиентам развертывание нашего локального шлюза, мы представили новый API конфигурации, который устраняет зависимость от службы хранилища Azure, если только вы не используете инспектор API или квоты.
Новый API конфигурации позволяет клиентам без усилий внедрять, развертывать и использовать наш локальный шлюз в своей существующей инфраструктуре.
Мы представили новые теги образа контейнера, чтобы клиенты могли выбрать лучший способ опробовать наш шлюз и развернуть его в рабочей среде.
Чтобы помочь клиентам запустить наш шлюз в производственной среде, мы расширили соответствующее руководство с описанием того, как автоматически масштабировать шлюз и развернуть его для обеспечения высокой доступности в кластере Kubernetes.
Узнайте больше о возможностях подключения нашего шлюза, наших новых требованиях к инфраструктуре и о том, что произойдет, если подключение будет потеряно, из этой статьи.
Необходимые компоненты
Прежде чем переходить на автономный шлюз версии 2, необходимо убедиться, что ваша инфраструктура соответствует требованиям.
Миграция на локальный шлюз версии 2
Для миграции с локального шлюза версии 2 необходимо выполнить несколько действий:
- Использовать новый образ контейнера.
- Использовать новый API конфигурации.
- Обеспечить соответствие требованиям к безопасности.
Образ контейнера
Измените тег изображения в скриптах развертывания, чтобы использовать 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 не поддерживает имена личных доменов.
Следующие шаги
- Дополнительные сведения о Управление API в гибридном и многооблачном мире
- Дополнительные указания по запуску локального шлюза в Kubernetes в рабочей среде
- Развертывание локального шлюза в Docker
- Развертывание локального шлюза в Kubernetes
- Развертывание локального шлюза в кластере Kubernetes с поддержкой Azure Arc