Руководство. Включение надстройки контроллера входящего трафика для нового кластера AKS с новым экземпляром шлюза приложений

С помощью Azure CLI можно включить надстройку контроллера входящего трафика шлюза приложений (AGIC) для нового кластера Служба Azure Kubernetes (AKS).

В этом учебнике описано, как создавать кластер AKS с включенной надстройкой AGIC. Создание кластера автоматически создаст экземпляр шлюза приложений Azure для использования. Затем вы развернете пример приложения, которое будет использовать надстройку для предоставления приложения через шлюз приложений.

Надстройка обеспечивает более быстрый способ развертывания AGIC для кластера AKS, чем при использовании Helm. Она также предоставляет полностью управляемый интерфейс.

В этом руководстве описано следующее:

  • Создать группу ресурсов.
  • Создайте кластер AKS с включенной надстройкой AGIC.
  • Разверните пример приложения с помощью AGIC для объекта ingress в кластере AKS.
  • Убедитесь, что приложение доступно через шлюз приложений.

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

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

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Создание или изменение группы ресурсов

В Azure выделите связанные ресурсы группе ресурсов. Создайте группу ресурсов, используя команду az group create. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении "Восточная часть США " (регион):

az group create --name myResourceGroup --location eastus

Развертывание кластера AKS с включенной надстройкой

Теперь разверните кластер AKS с включенной надстройкой AGIC. Если в этом процессе не указан существующий экземпляр шлюза приложений, вы автоматически создадите и настроите новый экземпляр шлюза приложений для обслуживания трафика в кластер AKS.

Примечание.

Надстройка контроллера входящего трафика шлюза приложений поддерживает только номера SKU шлюза приложений версии 2 (standard и WAF), а не SKU шлюза приложений версии 1. При развертывании нового экземпляра шлюза приложений с помощью надстройки AGIC можно развернуть только шлюз приложений Standard_v2 SKU. Если вы хотите включить надстройку для шлюза приложений WAF_v2 SKU, используйте один из следующих методов:

В следующем примере вы развернете новый кластер 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, имеет разрешение Microsoft.Network/virtualNetworks/subnets/join/action, делегированное в подсеть Шлюз приложений. Если пользовательская роль не определена с этим разрешением, можно использовать встроенную роль участника сети , которая содержит разрешение Microsoft.Network/virtualNetworks/subnets/join/action .

# 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 для ingress в кластере. AGIC обновит экземпляр шлюза приложений, настроенный ранее с соответствующими правилами маршрутизации, в пример приложения, которое вы развертываете.

kubectl apply -f https://raw.githubusercontent.com/Azure/application-gateway-kubernetes-ingress/master/docs/examples/aspnetapp.yaml 

Проверка доступности приложения

Теперь, когда экземпляр шлюза приложений настроен для обслуживания трафика в кластер AKS, давайте убедимся, что приложение доступно. Сначала получите IP-адрес объекта ingress:

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 с существующим шлюзом приложений, перейдите к следующему руководству.