Zarządzany ruch przychodzący NGINX z dodatkiem routingu aplikacji
Artykuł
Jednym ze sposobów kierowania ruchu protokołu HTTP (Hypertext Transfer Protocol) i bezpiecznego (HTTPS) do aplikacji działających w klastrze usługi Azure Kubernetes Service (AKS) jest użycie obiektu Ruchu przychodzącego Kubernetes. Podczas tworzenia obiektu ruchu przychodzącego, który używa klas ruchu przychodzącego NGINX dodatku routingu aplikacji, dodatek tworzy, konfiguruje i zarządza co najmniej jednym kontrolerem ruchu przychodzącego w klastrze usługi AKS.
W tym artykule pokazano, jak wdrożyć i skonfigurować podstawowy kontroler ruchu przychodzącego w klastrze usługi AKS.
Dodatek routingu aplikacji z funkcjami NGINX
Dodatek routingu aplikacji z serwerem NGINX zapewnia następujące elementy:
Łatwa konfiguracja zarządzanych kontrolerów ruchu przychodzącego NGINX na podstawie kontrolera ruchu przychodzącego NGINX Platformy Kubernetes.
Integracja z usługą Azure DNS na potrzeby zarządzania strefami publicznymi i prywatnymi
Kończenie żądań SSL z certyfikatami przechowywanymi w usłudze Azure Key Vault.
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 ConfigMap w app-routing-system przestrzeni nazw nie jest obsługiwane.
Następujące adnotacje fragmentu kodu są blokowane i uniemożliwią skonfigurowanie ruchu przychodzącego: load_module, rootproxy_passlua_package{_by_lua'locationserviceaccount}.
Włączanie routingu aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure
Włączanie w nowym klastrze
Aby włączyć routing aplikacji w nowym klastrze, użyj az aks create polecenia , określając flagę --enable-app-routing .
Azure CLI
az aks create \
--resource-group<ResourceGroupName> \
--name<ClusterName> \
--location<Location> \
--enable-app-routing \
--generate-ssh-keys
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.
Ten manifest spowoduje utworzenie niezbędnych wdrożeń i usług dla aplikacji sklepu AKS.
Tworzenie obiektu ruchu przychodzącego
Dodatek routingu aplikacji tworzy klasę ruchu przychodzącego w klastrze o nazwie webapprouting.kubernetes.azure.com. Podczas tworzenia obiektu ruchu przychodzącego za pomocą tej klasy aktywuje dodatek.
Skopiuj następujący manifest YAML do nowego pliku o nazwie ingress.yaml i zapisz plik na komputerze lokalnym.
Utwórz zasób ruchu przychodzącego kubectl apply przy użyciu polecenia .
Bash
kubectl apply -f ingress.yaml -n aks-store
W poniższych przykładowych danych wyjściowych przedstawiono utworzony zasób:
Output
ingress.networking.k8s.io/store-front created
Sprawdź, czy utworzono zarządzany ruch przychodzący
Możesz sprawdzić, czy zarządzany ruch przychodzący został utworzony przy użyciu kubectl get ingress polecenia .
Bash
kubectl get ingress -n aks-store
W poniższych przykładowych danych wyjściowych przedstawiono utworzony zarządzany ruch przychodzący:
Output
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ący przeglądarkę na publiczny adres IP kontrolera ruchu przychodzącego.
Znajdź adres IP za pomocą narzędzia kubectl:
Bash
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
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.
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.
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.
Opinia o produkcie Azure Kubernetes Service
Azure Kubernetes Service to projekt typu open source. Wybierz link, aby przekazać opinię:
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.