Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В Azure CLI можно включить надстройку контроллера входящего трафика шлюза приложений (AGIC) для нового кластера Службы Azure Kubernetes (AKS).
В этом руководстве вы создадите кластер AKS с включенной надстройкой AGIC. Создание кластера автоматически создаст экземпляр шлюза приложений Azure для использования. Затем вы развернете пример приложения, которое будет использовать надстройку для предоставления приложения через шлюз приложений.
Надстройка предоставляет гораздо более быстрый способ развертывания AGIC для кластера AKS, чем раньше через Helm. Он также предлагает полностью управляемый интерфейс.
В этом руководстве вы узнаете, как:
- Создайте группу ресурсов.
- Создайте новый кластер AKS с включенной надстройкой AGIC.
- Разверните пример приложения с помощью AGIC для входящего трафика в кластере AKS.
- Проверьте, доступно ли приложение через шлюз приложения.
Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
Предпосылки
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, подумайте о запуске Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, войдите в Azure CLI с помощью команды az login . Чтобы завершить процесс аутентификации, следуйте шагам, отображаемым в вашем терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Когда вас попросят, установите расширение Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Создайте группу ресурсов
В Azure вы распределяете связанные ресурсы по группе ресурсов. Создайте группу ресурсов с помощью az group create. В следующем примере создается группа ресурсов с именем myResourceGroup в регионе East US (восток США):
az group create --name myResourceGroup --location eastus
Разверните кластер AKS с активированной надстройкой
Теперь вы развернете новый кластер AKS с включенной надстройкой AGIC. Если в этом процессе не указано использование существующего инстанса шлюза приложений, вы автоматически создадите и настроите новый инстанс шлюза приложений для направления трафика на кластер AKS.
Замечание
Надстройка контроллера входящего трафика шлюза приложений поддерживает только SKU шлюза приложений версии 2 (Standard и WAF), но не SKU шлюза приложений версии 1. При развертывании нового экземпляра шлюза приложений с помощью надстройки AGIC можно развернуть только шлюз приложений Standard_v2 SKU. Если вы хотите включить надстройку для шлюза приложений WAF_v2 SKU, используйте один из следующих методов:
- Включите WAF на шлюзе приложений через портал.
- Сначала создайте экземпляр шлюза приложений WAF_v2, а затем следуйте инструкциям по включению надстройки AGIC с существующим кластером AKS и существующим экземпляром шлюза приложений.
В следующем примере вы развернете новый кластер AKS с именем myCluster с помощью Azure CNI и управляемых удостоверений. Надстройка AGIC будет включена в созданной группе ресурсов myResourceGroup.
Развертывание нового кластера AKS с включенной надстройкой AGIC без указания существующего экземпляра шлюза приложений автоматически создаст экземпляр шлюза приложений Standard_v2 SKU. Необходимо указать имя и адресное пространство подсети для нового экземпляра шлюза приложений. Адресное пространство должно находиться в диапазоне префикса 10.224.0.0/12, используемого виртуальной сетью AKS, и не должно пересекаться с префиксом 10.224.0.0/16, который используется подсетью AKS. В этом руководстве используйте myApplicationGateway для имени шлюза приложений и 10.225.0.0/16 для адресного пространства подсети.
az aks create -n myCluster -g myResourceGroup --network-plugin azure --enable-managed-identity -a ingress-appgw --appgw-name myApplicationGateway --appgw-subnet-cidr "10.225.0.0/16" --generate-ssh-keys
Замечание
Убедитесь, что удостоверение, используемое AGIC, имеет соответствующие разрешения. Список разрешений, необходимых для идентификации, можно найти здесь: Настройка инфраструктуры — Разрешения. Если пользовательская роль не определена с необходимыми разрешениями, можно использовать роль участника сети .
Замечание
Если вы планируете использовать AGIC с кластером AKS с наложением CNI, укажите параметр --aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/AppGatewayWithOverlayPreview
для настройки AGIC на обработку связи с кластером, в котором включено наложение CNI.
# Get application gateway id from AKS addon profile
appGatewayId=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.config.effectiveApplicationGatewayId")
# Get Application Gateway subnet id
appGatewaySubnetId=$(az network application-gateway show --ids $appGatewayId -o tsv --query "gatewayIPConfigurations[0].subnet.id")
# Get AGIC addon identity
agicAddonIdentity=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.identity.clientId")
# Assign network contributor role to AGIC addon identity to subnet that contains the Application Gateway
az role assignment create --assignee $agicAddonIdentity --scope $appGatewaySubnetId --role "Network Contributor"
Чтобы настроить больше параметров для вышеупомянутой команды, см. az aks create.
Замечание
Созданный кластер AKS появится в созданной группе ресурсов myResourceGroup. Однако автоматически созданный экземпляр шлюза приложений будет находиться в группе ресурсов узла, где находятся пулы агентов. Группа ресурсов узла называется MC_resource-group-name_cluster-name_location по умолчанию, но может быть изменена.
Развертывание примера приложения с помощью AGIC
Теперь вы развернете пример приложения в созданном кластере AKS. Приложение будет использовать надстройку AGIC для входящих подключений и подключать экземпляр шлюза приложений к кластеру AKS.
Сначала получите учетные данные в кластер AKS, выполнив az aks get-credentials
команду:
az aks get-credentials -n myCluster -g myResourceGroup
Теперь, когда у вас есть учетные данные, выполните следующую команду, чтобы настроить пример приложения, использующего AGIC для входящего трафика в кластер. AGIC обновит экземпляр шлюза приложений, настроенный ранее, с соответствующими правилами маршрутизации для образца приложения, который вы развертываете.
kubectl apply -f https://raw.githubusercontent.com/Azure/application-gateway-kubernetes-ingress/master/docs/examples/aspnetapp.yaml
Проверьте, что приложение доступно
Теперь, когда экземпляр шлюза приложений настроен для направления трафика в кластер AKS, давайте убедимся, что ваше приложение доступно. Сначала получите IP-адрес входящего трафика:
kubectl get ingress
Убедитесь, что созданное вами примерное приложение выполняется одним из следующих способов:
- Посетите IP-адрес экземпляра шлюза приложений, который вы получили от выполнения предыдущей команды.
- При помощи
curl
.
Шлюз приложений может занять минуту, чтобы получить обновление. Если шлюз приложений по-прежнему находится в состоянии обновления на портале, позвольте ему завершить работу, прежде чем попытаться достичь IP-адреса.
Очистите ресурсы
Если они больше не нужны, удалите все ресурсы, созданные в этом руководстве, удалив myResourceGroup и MC_myResourceGroup_myCluster_eastus группы ресурсов:
az group delete --name myResourceGroup
az group delete --name MC_myResourceGroup_myCluster_eastus
Дальнейшие шаги
Изучив это руководство, вы:
- Создан новый кластер AKS с включенной надстройкой AGIC
- Развернут пример приложения с помощью AGIC для входящего трафика в кластере AKS
Дополнительные сведения об AGIC см. в разделе "Контроллер входящего шлюза приложений " и Как отключить и повторно включить надстройку AGIC для вашего кластера AKS.
Чтобы узнать, как включить надстройку контроллера входа шлюза приложений для существующего кластера AKS с существующим шлюзом приложений, перейдите к следующему учебнику.