Udostępnij za pomocą


Samouczek: aktywacja dodatku kontrolera ruchu przychodzącego dla bramy aplikacji w istniejącym klastrze AKS z istniejącą bramą aplikacji

Możesz użyć Azure CLI lub Azure portal, aby włączyć dodatek dla kontrolera wejściowego Application Gateway (AGIC) dla istniejącego klastra Azure Kubernetes Service (AKS). Z tego samouczka dowiesz się, jak za pomocą dodatku AGIC uwidocznić aplikację Kubernetes w istniejącym klastrze usługi AKS za pomocą istniejącej bramy aplikacji wdrożonej w oddzielnych sieciach wirtualnych. Zaczniesz od utworzenia klastra usługi AKS w jednej sieci wirtualnej i bramy aplikacji w oddzielnej sieci wirtualnej w celu symulowania istniejących zasobów. Następnie włączysz dodatek AGIC, sparujesz dwie sieci wirtualne razem i wdrożysz przykładową aplikację, która zostanie udostępniona za pośrednictwem bramy aplikacji przy użyciu dodatku AGIC. Jeśli włączasz dodatek AGIC dla obecnej bramy aplikacji i klastra AKS w tej samej sieci wirtualnej, możesz pominąć poniższy krok nawiązywania połączenia. Dodatek zapewnia znacznie szybszy sposób wdrażania AGIC dla klastra AKS niż za pośrednictwem Helm, a także oferuje w pełni zarządzaną usługę.

Wskazówka

W przypadku rozwiązania ruchu przychodzącego Kubernetes rozważ użycie usługi Application Gateway dla kontenerów.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Utwórz grupę zasobów.
  • Utwórz nowy klaster AKS.
  • Utwórz nową bramę aplikacji.
  • Włącz dodatek AGIC w istniejącym klastrze AKS za pomocą Azure CLI.
  • Włącz dodatek AGIC w istniejącym klastrze usługi AKS za pośrednictwem witryny Azure Portal.
  • Skonfiguruj połączenie równorzędne sieci wirtualnej bramy aplikacyjnej z siecią wirtualną klastra AKS.
  • Wdróż przykładową aplikację, używając AGIC do zarządzania ruchem w klastrze AKS.
  • Sprawdź, czy aplikacja jest osiągalna za pośrednictwem bramy aplikacji.

Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

Tworzenie grupy zasobów

Na platformie Azure możesz przydzielić powiązane zasoby do grupy zasobów. Utwórz grupę zasobów za pomocą polecenia az group create. Poniższy przykład tworzy grupę zasobów o nazwie myResourceGroup w lokalizacji Wschodnie stany USA (region):

az group create --name myResourceGroup --location eastus

Wdróż nowy klaster AKS

Teraz wdrożysz nowy klaster usługi AKS, aby symulować posiadanie istniejącego klastra usługi AKS, dla którego chcesz włączyć dodatek AGIC.

W poniższym przykładzie wdrożysz nowy klaster usługi AKS o nazwie myCluster przy użyciu usługi Azure CNI i tożsamości zarządzanych w utworzonej grupie zasobów myResourceGroup.

az aks create --name myCluster --resource-group myResourceGroup --network-plugin azure --enable-managed-identity --generate-ssh-keys

Aby skonfigurować więcej parametrów dla powyższego polecenia, zobacz az aks create.

Uwaga

Zostanie utworzona grupa zasobów węzła o nazwie MC_resource-group-name_cluster-name_location.

Ostrzeżenie

W tym dokumencie założono, że usługa Azure CNI jest zainstalowana w klastrze usługi AKS. Jeśli planujesz korzystanie z nakładki CNI, musisz upewnić się, że usługa Application Gateway i klaster AKS są częścią tej samej sieci wirtualnej.

Wdrażanie nowej bramy aplikacji

Teraz wdrożysz nową bramę aplikacji, aby zasymulować posiadanie istniejącej bramy aplikacji, którą chcesz użyć do równoważenia obciążenia ruchu do klastra usługi AKS myCluster. Nazwa bramy aplikacji będzie następująca: myApplicationGateway, ale musisz najpierw utworzyć zasób publicznego adresu IP o nazwie myPublicIp i nową sieć wirtualną o nazwie myVnet z przestrzenią adresową 10.0.0.0/16 oraz podsiecią z przestrzenią adresową 10.0.0.0/24 i wdrożyć bramę aplikacji w podsieci mySubnet przy użyciu myPublicIp.

Uwaga

W przypadku korzystania z klastra AKS i bramy aplikacji w oddzielnych sieciach wirtualnych przestrzenie adresowe dwóch sieci wirtualnych nie mogą się nakładać. Domyślna przestrzeń adresowa, w której wdrażany jest klaster AKS, to 10.224.0.0/12.

az network public-ip create --name myPublicIp --resource-group myResourceGroup --allocation-method Static --sku Standard
az network vnet create --name myVnet --resource-group myResourceGroup --address-prefix 10.0.0.0/16 --subnet-name mySubnet --subnet-prefix 10.0.0.0/24 
az network application-gateway create --name myApplicationGateway --resource-group myResourceGroup --sku Standard_v2 --public-ip-address myPublicIp --vnet-name myVnet --subnet mySubnet --priority 100

Uwaga

Dodatek kontrolera ruchu przychodzącego bramy aplikacji (AGIC) obsługuje wyłącznie jednostki SKU bramy aplikacji w wersji 2 (Standard i WAF), a nie jednostki SKU bramy aplikacji w wersji 1.

Włącz dodatek AGIC w istniejącym klastrze AKS za pomocą Azure CLI

Jeśli chcesz kontynuować korzystanie z interfejsu wiersza polecenia platformy Azure, możesz nadal włączyć dodatek AGIC w utworzonym klastrze usługi AKS, myCluster i określić dodatek AGIC, aby użyć utworzonej istniejącej bramy aplikacji myApplicationGateway.

appgwId=$(az network application-gateway show --name myApplicationGateway --resource-group myResourceGroup -o tsv --query "id") 
az aks enable-addons --name myCluster --resource-group myResourceGroup --addon ingress-appgw --appgw-id $appgwId

Włącz dodatek AGIC w istniejącym klastrze AKS za pośrednictwem Azure portal

  1. Na stronie głównej portalu Azure przejdź do zasobu klastra usługi AKS.
  2. W menu usługi w obszarze Ustawienia wybierz pozycję Integracja sieci>wirtualnej.
  3. W obszarze Kontroler przyjmowania ruchu usługi Application Gateway wybierz pozycję Zarządzaj.
  4. Na stronie Kontroler ruchu przychodzącego usługi Application Gateway, zaznacz pole wyboru, aby włączyć kontroler, a następnie wybierz swoją istniejącą bramę aplikacji z listy rozwijanej.
  5. Wybierz pozycję Zapisz.

Ważne

Jeśli używasz bramy aplikacji w innej grupie zasobów niż grupa zasobów klastra usługi AKS, tożsamość zarządzana ingressapplicationgateway-{AKSNAME}, która została utworzona, musi mieć role Współautor sieci i Czytelnik ustawione w grupie zasobów bramy aplikacji.

Sparuj dwie sieci wirtualne

Ponieważ klaster usługi AKS został wdrożony we własnej sieci wirtualnej, a brama aplikacji została wdrożona w innej sieci wirtualnej, należy połączyć te dwie sieci wirtualne za pomocą peeringu, aby umożliwić przepływ ruchu z bramy aplikacji do zasobników w klastrze. Peering dwóch sieci wirtualnych wymaga dwukrotnego uruchomienia polecenia Azure CLI, aby upewnić się, że połączenie jest dwukierunkowe. Pierwsze polecenie spowoduje utworzenie połączenia komunikacji równorzędnej z sieci wirtualnej usługi Application Gateway do sieci wirtualnej usługi AKS; drugie polecenie utworzy połączenie komunikacji równorzędnej w innym kierunku.

nodeResourceGroup=$(az aks show --name myCluster --resource-group myResourceGroup -o tsv --query "nodeResourceGroup")
aksVnetName=$(az network vnet list --resource-group $nodeResourceGroup -o tsv --query "[0].name")

aksVnetId=$(az network vnet show --name $aksVnetName --resource-group $nodeResourceGroup -o tsv --query "id")
az network vnet peering create --name AppGWtoAKSVnetPeering --resource-group myResourceGroup --vnet-name myVnet --remote-vnet $aksVnetId --allow-vnet-access

appGWVnetId=$(az network vnet show --name myVnet --resource-group myResourceGroup -o tsv --query "id")
az network vnet peering create --name AKStoAppGWVnetPeering --resource-group $nodeResourceGroup --vnet-name $aksVnetName --remote-vnet $appGWVnetId --allow-vnet-access

Uwaga

W kroku "Wdróż nowy klaster AKS" powyżej utworzyliśmy AKS z użyciem Azure CNI, jeśli masz istniejący klaster AKS używający trybu Kubenet, musisz zaktualizować tabelę tras, aby pomóc pakietom przeznaczonym dla adresu IP POD-a dotrzeć do węzła, który hostuje POD-a. Prostym sposobem osiągnięcia tego celu jest skojarzenie tej samej tabeli tras utworzonej przez usługę AKS z podsiecią usługi Application Gateway.

Wdrażanie przykładowej aplikacji przy użyciu programu AGIC

Teraz wdrożysz przykładową aplikację w utworzonym klastrze usługi AKS z użyciem dodatku AGIC dla Ingress i połączysz bramę aplikacji z klastrem usługi AKS. Najpierw uruchomisz polecenie az aks get-credentials, aby uzyskać poświadczenia do wdrożonego klastra usługi AKS.

az aks get-credentials --name myCluster --resource-group myResourceGroup

Gdy masz poświadczenia do klastra, który utworzyłeś, uruchom następujące polecenie, aby skonfigurować przykładową aplikację korzystającą z AGIC dla Ingress do klastra. Program AGIC zaktualizuje bramę aplikacji skonfigurowaną wcześniej przy użyciu odpowiednich reguł routingu do nowej wdrożonej przykładowej aplikacji.

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

Sprawdź, czy aplikacja jest osiągalna

Teraz, gdy skonfigurowano bramę aplikacji do obsługi ruchu kierowanego do klastra AKS, sprawdźmy, czy aplikacja jest osiągalna. Najpierw uzyskasz adres IP Ingress.

kubectl get ingress

Sprawdź, czy utworzona przykładowa aplikacja jest uruchomiona, odwiedzając adres IP bramy aplikacji uzyskany z uruchomienia powyższego polecenia lub sprawdź za pomocą curl. Pobranie aktualizacji przez bramę aplikacji może potrwać minutę, więc jeśli brama aplikacji jest nadal w stanie "Aktualizowanie" na portalu Azure, pozwól jej zakończyć przed podjęciem próby połączenia się z adresem IP.

Czyszczenie zasobów

Jeśli nie są już potrzebne, usuń wszystkie zasoby utworzone w tym samouczku, usuwając grupę zasobów myResourceGroup i MC_myResourceGroup_myCluster_eastus :

az group delete --name myResourceGroup 
az group delete --name MC_myResourceGroup_myCluster_eastus

Następne kroki