Verwalteter NGINX-Eingang mit dem Anwendungsrouting-Add-On
Eine Möglichkeit zum Weiterleiten von HTTP- (Hypertext Transfer Protocol) und HTTPS-Datenverkehr (sicheres HTTP) an Anwendungen in einem AKS-Cluster (Azure Kubernetes Service) stellt die Verwendung des Kubernetes-Eingangsobjekts dar. Wenn Sie ein Eingangsobjekt erstellen, das die NGINX-Eingangsklassen des Anwendungsrouting-Add-Ons verwendet, erstellt, konfiguriert und verwaltet das Add-On mindestens einen Eingangsdatencontroller in Ihrem AKS-Cluster.
In diesem Artikel erfahren Sie, wie Sie einen einfachen Eingangsdatencontroller in Ihrem AKS-Cluster bereitstellen und konfigurieren.
Anwendungsrouting-Add-On mit NGINX-Features
Das Anwendungsrouting-Add-On mit NGINX ermöglicht Folgendes:
- Einfache Konfiguration von verwalteten NGINX-Eingangsdatencontrollern basierend auf NGINX-Eingangsdatencontrollern für Kubernetes
- Integration in Azure DNS für die Verwaltung öffentlicher und privater Zonen
- SSL-Beendigung mit Zertifikaten, die in Azure Key Vault gespeichert sind
Weitere Konfigurationen finden Sie unter:
- DNS- und SSL-Konfiguration
- Konfigurationen des Anwendungsrouting-Add-Ons
- Konfigurieren des internen NGIX-Eingangsdatencontrollers für die private Azure-DNS-Zone.
Mit der Einstellung von Open Service Mesh (OSM) durch die Cloud Native Computing Foundation (CNCF) ist die Verwendung des Anwendungsrouting-Add-Ons mit OSM nicht empfehlenswert.
Voraussetzungen
- Ein Azure-Abonnement. Falls Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.
- Version 2.54.0 oder höher der Azure CLI installiert und konfiguriert. Führen Sie
az --version
aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.
Einschränkungen
- Das Anwendungsrouting-Add-On unterstützt bis zu fünf Azure DNS-Zonen.
- Das Anwendungsrouting-Add-On kann nur auf AKS-Clustern mit verwalteter Identitätaktiviert werden.
- Alle globalen Azure DNS-Zonen, die in das Add-On integriert sind, müssen sich in derselben Ressourcengruppe befinden.
- Alle privaten Azure DNS-Zonen, die in das Add-On integriert sind, müssen sich in derselben Ressourcengruppe befinden.
- Das Bearbeiten des Eingangs-NGINX
ConfigMap
imapp-routing-system
-Namespace wird nicht unterstützt. - Die folgenden Codeausschnittanmerkungen werden blockiert und verhindern, dass ein Ingress konfiguriert wird:
load_module
,lua_package
,_by_lua
,location
,root
,proxy_pass
,serviceaccount
,{
,}
,'
.
Aktivieren von Anwendungsrouting mithilfe der Azure CLI
Aktivieren in einem neuen Cluster
Um das Anwendungsrouting in einem neuen Cluster zu aktivieren, verwenden Sie den Befehl az aks create
und geben Sie die Flag --enable-app-routing
an.
az aks create \
--resource-group <ResourceGroupName> \
--name <ClusterName> \
--location <Location> \
--enable-app-routing \
--generate-ssh-keys
Aktivieren in einem vorhandenen Cluster
Führen Sie zum Aktivieren von Anwendungsrouting auf einem vorhandenen Cluster den Befehl az aks approuting enable
aus.
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
Herstellen einer Verbindung mit dem AKS-Cluster
Zum Herstellen der Verbindung mit dem Kubernetes-Cluster auf Ihrem lokalen Computer verwenden Sie den Kubernetes-Befehlszeilenclient kubectl. Mit dem az aks install-cli
-Befehl können Sie es lokal installieren. Wenn Sie Azure Cloud Shell verwenden, ist kubectl
bereits installiert.
Mit dem Befehl az aks get-credentials können Sie kubectl
für die Verbindungsherstellung mit Ihrem Kubernetes-Cluster konfigurieren.
az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>
Bereitstellen von Anwendungen
Das Anwendungsrouting-Add-On verwendet Anmerkungen für Kubernetes-Eingangsobjekte, um die zugehörigen Ressourcen zu erstellen.
Erstellen Sie den Anwendungsnamespace
aks-store
, um die Beispielpods mit dem Befehlkubectl create namespace
auszuführen.kubectl create namespace aks-store
Stellen Sie die AKS Store-Anwendung mithilfe der folgenden YAML-Manifestdatei bereit:
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
Dieses Manifest erstellt die erforderlichen Bereitstellungen und Dienste für die AKS Store-Anwendung.
Erstellen des Eingangsobjekts
Das Anwendungsrouting-Add-On erstellt eine Eingangsklasse im Cluster mit Namen webapprouting.kubernetes.azure.com. Wenn Sie ein Eingangsobjekt mit dieser Klasse erstellen, aktiviert es das Add-On.
Kopieren Sie das folgende YAML-Manifest in eine neue Datei namens ingress.yaml, und speichern Sie die Datei auf Ihrem lokalen Computer.
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
Erstellen Sie die Eingangsressource mit dem Befehl
kubectl apply
.kubectl apply -f ingress.yaml -n aks-store
In der folgenden Beispielausgabe sehen Sie die erstellten Ressourcen:
ingress.networking.k8s.io/store-front created
Überprüfen, ob der verwaltete Eingang erstellt wurde
Überprüfen Sie mithilfe des Befehls kubectl get ingress
, ob der verwaltete Eingang erstellt wurde.
kubectl get ingress -n aks-store
Die folgende Beispielausgabe zeigt den erstellten verwalteten Eingang:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
Sie können überprüfen, ob der AKS-Speicher funktioniert, indem Sie Ihren Browser auf die öffentliche IP-Adresse des Ingress-Controllers verweisen. Suchen Sie die IP-Adresse mit kubectl:
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Entfernen des Anwendungsrouting-Add-Ons
Entfernen Sie den zugeordneten Namespace mithilfe des Befehls kubectl delete namespace
.
kubectl delete namespace aks-store
Entfernen Sie das Anwendungsrouting-Add-On mithilfe des Befehls az aks approuting disable
aus Ihrem Cluster.
az aks approuting disable --name <ClusterName> --resource-group <ResourceGroupName>
Hinweis
Um potenzielle Unterbrechungen des Datenverkehrs in den Cluster zu vermeiden, wenn das Anwendungsrouting-Add-On deaktiviert ist, verbleiben einige Kubernetes-Ressourcen, einschließlich configMaps, geheime Schlüssel und die Bereitstellung, die den Controller ausführt, im Cluster. Diese Ressourcen befinden sich im Namespace des App-Routing-Systems. Sie können diese Ressourcen entfernen, wenn sie nicht mehr benötigt werden, indem Sie den Namespace mit kubectl delete ns app-routing-system
löschen.
Nächste Schritte
Unter Konfigurieren von benutzerdefinierten Eingangskonfigurationen erfahren Sie, wie Sie eine erweiterte Eingangskonfiguration erstellen und eine benutzerdefinierte Domäne mit Azure DNS konfigurieren, um DNS-Zonen zu verwalten und einen sicheren Eingang einzurichten.
Informationen zur Integration in einen internen Azure-Lastenausgleich und zum Konfigurieren einer privaten Azure DNS-Zone, um die DNS-Auflösung für die privaten Endpunkte zum Auflösen bestimmter Domänen zu ermöglichen, finden Sie unter Konfigurieren interner NGINX-Eingangsdatencontroller für private Azure DNS-Zone.
Erfahren Sie mehr über die Überwachung der Metriken des nginx-Eingangsdatencontrollers, die im Anwendungsrouting-Add-On enthalten sind, mit Prometheus in Grafana beim Analysieren der Leistung und Nutzung Ihrer Anwendung.
Azure Kubernetes Service