Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jednym ze sposobów kierowania ruchu protokołu HTTP (Hypertext Transfer Protocol) i HTTPS (Hypertext Transfer Protocol Secure) do aplikacji działających w klastrze usługi Azure Kubernetes Service (AKS) jest użycie obiektu Ingress Kubernetes. Podczas tworzenia obiektu Ingress, który używa klas Ingress dodatku do routingu aplikacji NGINX, dodatek tworzy, konfiguruje i zarządza jednym lub więcej kontrolerami Ingress w klastrze AKS.
W tym artykule pokazano, jak wdrożyć i skonfigurować podstawowy kontroler Ingress w klastrze AKS.
Dodatek routingu aplikacji z funkcjami NGINX
Dodatek routingu aplikacji z serwerem NGINX zapewnia następujące elementy:
- Łatwa konfiguracja zarządzanych kontrolerów NGINX Ingress opartych na kontrolerze NGINX Ingress Kubernetes.
- Integracja z usługą Azure DNS na potrzeby zarządzania strefami publicznymi i prywatnymi
- Terminowanie SSL z certyfikatami przechowywanymi w usłudze Azure Key Vault.
Aby zobaczyć inne konfiguracje, zobacz:
- Konfiguracja dns i protokołu SSL
- Konfiguracja dodatku routingu aplikacji
- Skonfiguruj wewnętrzny kontroler Ingress NGINX dla prywatnej strefy DNS Azure.
Po wycofaniu usługi Open Service Mesh (OSM) przez Cloud Native Computing Foundation (CNCF) użycie dodatku routingu aplikacji z OSM nie jest zalecane.
Wymagania wstępne
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji Azure, możesz utworzyć bezpłatne konto Azure.
- Interfejs wiersza polecenia platformy Azure w wersji 2.54.0 lub nowszej został zainstalowany i skonfigurowany. Uruchom polecenie
az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Ograniczenia
- Dodatek routingu aplikacji obsługuje maksymalnie pięć stref usługi Azure DNS.
- Dodatek routingu aplikacji można włączyć tylko w klastrach usługi AKS z tożsamością zarządzaną.
- Wszystkie globalne strefy DNS platformy Azure zintegrowane z dodatkiem muszą znajdować się w tej samej grupie zasobów.
- Wszystkie prywatne strefy DNS platformy Azure zintegrowane z dodatkiem muszą znajdować się w tej samej grupie zasobów.
- Edytowanie pliku ingress-nginx
ConfigMapwapp-routing-systemprzestrzeni nazw nie jest obsługiwane. - Następujące adnotacje fragmentu kodu są blokowane i uniemożliwią skonfigurowanie Ingressu:
load_module,lua_package,_by_lua,location,root,proxy_pass,serviceaccount,{,},'.
Włączanie routingu aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure
Włącz na nowym klastrze
Aby włączyć routing aplikacji w nowym klastrze, użyj az aks create polecenia z określeniem flagi --enable-app-routing.
az aks create \
--resource-group <ResourceGroupName> \
--name <ClusterName> \
--location <Location> \
--enable-app-routing \
--generate-ssh-keys
Włączanie w istniejącym klastrze
Aby włączyć routing aplikacji w istniejącym klastrze, użyj polecenia az aks approuting enable.
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
Nawiązywanie połączenia z klastrem usługi AKS
Aby nawiązać połączenie z klastrem Kubernetes z komputera lokalnego, należy użyć narzędzia kubectl, czyli klienta wiersza polecenia usługi Kubernetes. Możesz zainstalować ją lokalnie przy użyciu az aks install-cli polecenia . Jeśli korzystasz z usługi Azure Cloud Shell, narzędzie kubectl jest już zainstalowane.
Skonfiguruj kubectl, aby połączyć się z klastrem Kubernetes przy użyciu polecenia az aks get-credentials.
az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>
Wdrażanie aplikacji
Dodatek routingu aplikacji używa adnotacji w obiektach Ingress Kubernetes w celu utworzenia odpowiednich zasobów.
Utwórz przestrzeń nazw aplikacji o nazwie
aks-store, aby uruchomić przykładowe zasobniki przy użyciukubectl create namespacepolecenia .kubectl create namespace aks-storeWdróż aplikację magazynu AKS przy użyciu następującego pliku manifestu YAML:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/sample-manifests/docs/app-routing/aks-store-deployments-and-services.yaml -n aks-store
Ten manifest spowoduje utworzenie niezbędnych wdrożeń i usług dla aplikacji sklepu AKS.
Utwórz obiekt Ingress
Dodatek do routingu aplikacji tworzy klasę Ingress w klastrze o nazwie webapprouting.kubernetes.azure.com. Podczas tworzenia obiektu Ingress za pomocą tej klasy aktywuje się dodatek.
Skopiuj następujący manifest YAML do nowego pliku o nazwie ingress.yaml i zapisz plik na komputerze lokalnym.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: store-front namespace: aks-store spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: PrefixUtwórz zasób Ingress przy użyciu polecenia
kubectl apply.kubectl apply -f ingress.yaml -n aks-storeW poniższych przykładowych danych wyjściowych przedstawiono utworzony zasób:
ingress.networking.k8s.io/store-front created
Sprawdź, czy utworzono zarządzany Ingress
Możesz zweryfikować utworzenie zarządzanego Ingress za pomocą polecenia kubectl get ingress.
kubectl get ingress -n aks-store
W poniższym przykładowym wyniku przedstawiono utworzony zarządzany Ingress:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
Możesz sprawdzić, czy magazyn usługi AKS działa, wskazując przeglądarkę na publiczny adres IP kontrolera Ingress. Znajdź adres IP za pomocą narzędzia kubectl:
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Usuwanie dodatku routingu aplikacji
Aby usunąć skojarzona przestrzeń nazw, użyj kubectl delete namespace polecenia .
kubectl delete namespace aks-store
Aby usunąć dodatek routingu aplikacji z klastra, użyj az aks approuting disable polecenia .
az aks approuting disable --name <ClusterName> --resource-group <ResourceGroupName>
Uwaga
Aby uniknąć potencjalnych zakłóceń ruchu w klastrze, gdy dodatek routingu aplikacji jest wyłączony, niektóre zasoby Kubernetes, w tym configMaps, wpisy tajne i wdrożenie , które uruchamia kontroler, pozostanie w klastrze. Te zasoby znajdują się w przestrzeni nazw app-routing-system . Możesz usunąć te zasoby, jeśli nie są już potrzebne, usuwając przestrzeń nazw za pomocą polecenia kubectl delete ns app-routing-system.
Następne kroki
Konfigurowanie niestandardowych konfiguracji ruchu przychodzącego pokazuje, jak utworzyć zaawansowaną konfigurację ruchu przychodzącego i skonfigurować domenę niestandardową przy użyciu usługi Azure DNS do zarządzania strefami DNS i konfigurowania bezpiecznego ruchu przychodzącego.
Aby zintegrować się z wewnętrznym modułem równoważenia obciążenia platformy Azure i skonfigurować prywatną strefę usługi Azure DNS w celu włączenia rozpoznawania prywatnych punktów końcowych w celu rozpoznawania określonych domen, zobacz Konfigurowanie wewnętrznego kontrolera ruchu przychodzącego NGINX dla prywatnej strefy DNS platformy Azure.
Dowiedz się więcej na temat monitorowania metryk kontrolera ingress-nginx w zestawie z dodatkiem routingu aplikacji za pomocą Prometheusa w Grafanie (wersja próbna) w ramach analizowania wydajności i użycia aplikacji.