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


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

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

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

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

В этом руководстве вы узнаете, как:

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

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

Предпосылки

Создайте группу ресурсов

В 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, используйте один из следующих методов:

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