Zarządzany ruch przychodzący NGINX z dodatkiem routingu aplikacji
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.
Inne konfiguracje można znaleźć w temacie:
- Konfiguracja dns i protokołu SSL
- Konfiguracja dodatku routingu aplikacji
- Skonfiguruj wewnętrzny kontroler ruchu przychodzącego NGIX dla prywatnej strefy DNS platformy 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
ConfigMap
wapp-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
,root
proxy_pass
lua_package
{
_by_lua
'
location
serviceaccount
}
.
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
.
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 az aks approuting enable
polecenia .
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 nawiązać połączenie 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 ruchu przychodzącego 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 namespace
polecenia .kubectl create namespace aks-store
Wdróż 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.
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.
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: Prefix
Utwórz zasób ruchu przychodzącego
kubectl apply
przy użyciu polecenia .kubectl apply -f ingress.yaml -n aks-store
W poniższych przykładowych danych wyjściowych przedstawiono utworzony zasób:
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 .
kubectl get ingress -n aks-store
W poniższych przykładowych danych wyjściowych przedstawiono utworzony zarządzany ruch przychodzący:
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:
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 ruchu przychodzącego-nginx dołączonego do dodatku routingu aplikacji za pomocą rozwiązania Prometheus w narzędziu Grafana (wersja zapoznawcza) w ramach analizowania wydajności i użycia aplikacji.
Azure Kubernetes Service