Samouczek: włączanie dodatku kontrolera ruchu przychodzącego bramy aplikacji dla istniejącego klastra usługi AKS z istniejącą bramą aplikacji
Interfejs wiersza polecenia platformy Azure lub portal umożliwia włączenie dodatku kontrolera ruchu przychodzącego bramy aplikacji (AGIC) dla istniejącego klastra usługi Azure Kubernetes Services (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, połączysz elementy równorzędne z dwiema sieciami wirtualnymi 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 istniejącej bramy aplikacji i istniejącego klastra usługi AKS w tej samej sieci wirtualnej, możesz pominąć poniższy krok komunikacji równorzędnej. Dodatek zapewnia znacznie szybszy sposób wdrażania usługi AGIC dla klastra usługi AKS niż za pośrednictwem programu Helm , a także oferuje w pełni zarządzane środowisko.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Utwórz grupę zasobów.
- Utwórz nowy klaster usługi AKS.
- Utwórz nową bramę aplikacji.
- Włącz dodatek AGIC w istniejącym klastrze usługi AKS za pomocą interfejsu wiersza polecenia platformy Azure.
- Włącz dodatek AGIC w istniejącym klastrze usługi AKS za pośrednictwem witryny Azure Portal.
- Komunikacja równorzędna sieci wirtualnej bramy aplikacji z siecią wirtualną klastra usługi AKS.
- Wdróż przykładową aplikację przy użyciu programu AGIC na potrzeby ruchu przychodzącego w klastrze usługi AKS.
- Sprawdź, czy aplikacja jest osiągalna za pośrednictwem bramy aplikacji.
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Wymagania wstępne
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
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
Wdrażanie nowego klastra usługi 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.
Wdrażanie nowej bramy aplikacji
Teraz wdrożysz nową bramę aplikacji, aby symulować istniejącą bramę aplikacji, której 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 wdrażana przez klaster usługi 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 tylko jednostki SKU bramy aplikacji w wersji 2 (Standardowa i zapora aplikacji internetowej), a nie jednostki SKU bramy aplikacji w wersji 1.
Włączanie dodatku AGIC w istniejącym klastrze usługi AKS za pomocą interfejsu wiersza polecenia platformy Azure
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łączanie dodatku AGIC w istniejącym klastrze usługi AKS za pośrednictwem witryny Azure Portal
- Na stronie głównej witryny Azure Portal przejdź do zasobu klastra usługi AKS.
- W menu usługi w obszarze Ustawienia wybierz pozycję Integracja sieci>wirtualnej.
- W obszarze Kontroler ruchu przychodzącego usługi Application Gateway wybierz pozycję Zarządzaj.
- Na stronie Kontroler ruchu przychodzącego usługi Application Gateway zaznacz pole wyboru, aby włączyć kontroler ruchu przychodzącego, a następnie wybierz istniejącą bramę aplikacji z listy rozwijanej.
- 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} utworzona musi mieć role Współautor sieci i Czytelnik ustawiony w grupie zasobów bramy aplikacji.
Połącz elementy równorzędne z dwiema sieciami wirtualnymi
Ponieważ klaster usługi AKS został wdrożony we własnej sieci wirtualnej i w bramie aplikacji w innej sieci wirtualnej, należy za pomocą komunikacji równorzędnej między dwiema sieciami wirtualnymi, aby ruch przepływał z bramy aplikacji do zasobników w klastrze. Komunikacja równorzędna dwóch sieci wirtualnych wymaga dwukrotnego uruchomienia polecenia interfejsu wiersza polecenia platformy Azure, 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 usługi AKS" powyżej utworzyliśmy usługę AKS za pomocą usługi Azure CNI, jeśli masz istniejący klaster usługi AKS przy użyciu trybu Kubenet, musisz zaktualizować tabelę tras, aby pomóc pakietom przeznaczonym dla adresu IP zasobnika dotrzeć do węzła obsługującego zasobnik. 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, który będzie używał dodatku AGIC dla ruchu przychodzącego i połączysz bramę aplikacji z klastrem usługi AKS. Najpierw uzyskasz poświadczenia do wdrożonego klastra az aks get-credentials
usługi AKS, uruchamiając polecenie .
az aks get-credentials --name myCluster --resource-group myResourceGroup
Po utworzeniu poświadczeń do utworzonego klastra uruchom następujące polecenie, aby skonfigurować przykładową aplikację korzystającą z programu AGIC dla ruchu przychodzącego 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 brama aplikacji jest skonfigurowana do obsługi ruchu do klastra usługi AKS, sprawdźmy, czy aplikacja jest osiągalna. Najpierw uzyskasz adres IP ruchu przychodzącego.
kubectl get ingress
Sprawdź, czy utworzona przykładowa aplikacja jest uruchomiona, odwiedzając adres IP bramy aplikacji uzyskany z uruchomienia powyższego polecenia lub zaewidencjonuj curl
polecenie . Pobranie aktualizacji przez bramę aplikacji może potrwać minutę, więc jeśli brama aplikacji jest nadal w stanie "Aktualizowanie" w witrynie Azure Portal, niech zakończy się przed próbą uzyskania adresu 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