Beheerd NGINX-inkomend verkeer met de invoegtoepassing voor toepassingsroutering
Een manier om Hypertext Transfer Protocol (HTTP) en beveiligd (HTTPS)-verkeer te routeren naar toepassingen die worden uitgevoerd op een AKS-cluster (Azure Kubernetes Service), is het kubernetes-object voor inkomend verkeer te gebruiken. Wanneer u een inkomend object maakt dat gebruikmaakt van de NGINX-ingressklassen voor toepassingsroutering, maakt, configureert en beheert de invoegtoepassing een of meer ingangscontrollers in uw AKS-cluster.
In dit artikel leest u hoe u een eenvoudige ingangscontroller in uw AKS-cluster implementeert en configureert.
Invoegtoepassing voor toepassingsroutering met NGINX-functies
De invoegtoepassing voor toepassingsroutering met NGINX levert het volgende:
- Eenvoudige configuratie van beheerde NGINX-ingangscontrollers op basis van kubernetes NGINX-ingangscontroller.
- Integratie met Azure DNS voor beheer van openbare en privézones
- SSL-beëindiging met certificaten die zijn opgeslagen in Azure Key Vault.
Zie voor andere configuraties:
- DNS- en SSL-configuratie
- Configuratie van invoegtoepassing voor toepassingsroutering
- Configureer de interne NGIX-ingangscontroller voor de privé-DNS-zone van Azure.
Met de buitengebruikstelling van Open Service Mesh (OSM) door de Cloud Native Computing Foundation (CNCF) wordt het gebruik van de invoegtoepassing voor toepassingsroutering met OSM niet aanbevolen.
Vereisten
- Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis account maken.
- Azure CLI versie 2.54.0 of hoger geïnstalleerd en geconfigureerd. Voer
az --version
uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.
Beperkingen
- De invoegtoepassing voor toepassingsroutering ondersteunt maximaal vijf Azure DNS-zones.
- De invoegtoepassing voor toepassingsroutering kan alleen worden ingeschakeld op AKS-clusters met beheerde identiteit.
- Alle globale Azure DNS-zones die zijn geïntegreerd met de invoegtoepassing, moeten zich in dezelfde resourcegroep bevinden.
- Alle privé-Azure DNS-zones die zijn geïntegreerd met de invoegtoepassing, moeten zich in dezelfde resourcegroep bevinden.
- Het bewerken van de ingress-nginx
ConfigMap
in deapp-routing-system
naamruimte wordt niet ondersteund. - De volgende fragmentaantekeningen worden geblokkeerd en voorkomen dat een inkomend verkeer wordt geconfigureerd:
load_module
, ,lua_package
,_by_lua
, ,location
,root
, ,proxy_pass
,serviceaccount
, ,{
, ,}
.'
Toepassingsroutering inschakelen met behulp van Azure CLI
Inschakelen op een nieuw cluster
Als u toepassingsroutering op een nieuw cluster wilt inschakelen, gebruikt u de az aks create
opdracht en geeft u de --enable-app-routing
vlag op.
az aks create \
--resource-group <ResourceGroupName> \
--name <ClusterName> \
--location <Location> \
--enable-app-routing \
--generate-ssh-keys
Inschakelen op een bestaand cluster
Gebruik de az aks approuting enable
opdracht om toepassingsroutering in te schakelen op een bestaand cluster.
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
Verbinding maken met uw AKS-cluster
Gebruik kubectl, de Kubernetes-opdrachtregelclient, als u vanaf uw lokale computer verbinding wilt maken met het Kubernetes-cluster. U kunt deze lokaal installeren met behulp van de az aks install-cli
opdracht. Als u Azure Cloud Shell gebruikt, is kubectl
al geïnstalleerd.
Configureer kubectl
deze om verbinding te maken met uw Kubernetes-cluster met behulp van de opdracht az aks get-credentials .
az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>
Een app implementeren
De invoegtoepassing voor toepassingsroutering maakt gebruik van aantekeningen op Kubernetes Ingress-objecten om de juiste resources te maken.
Maak de toepassingsnaamruimte die wordt aangeroepen
aks-store
om de voorbeeldpods uit te voeren met behulp van dekubectl create namespace
opdracht.kubectl create namespace aks-store
Implementeer de AKS-archieftoepassing met behulp van het volgende YAML-manifestbestand:
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
Met dit manifest worden de benodigde implementaties en services voor de AKS-archieftoepassing gemaakt.
Het object Inkomend verkeer maken
De invoegtoepassing voor toepassingsroutering maakt een toegangsbeheerobjectklasse op het cluster met de naam webapprouting.kubernetes.azure.com. Wanneer u een inkomend object met deze klasse maakt, wordt de invoegtoepassing geactiveerd.
Kopieer het volgende YAML-manifest naar een nieuw bestand met de naam ingress.yaml en sla het bestand op uw lokale computer op.
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
Maak de toegangsbeheerobjectresource met behulp van de
kubectl apply
opdracht.kubectl apply -f ingress.yaml -n aks-store
In de volgende voorbeelduitvoer ziet u de gemaakte resource:
ingress.networking.k8s.io/store-front created
Controleren of het beheerde inkomend verkeer is gemaakt
U kunt controleren of het beheerde inkomend verkeer is gemaakt met behulp van de kubectl get ingress
opdracht.
kubectl get ingress -n aks-store
In de volgende voorbeelduitvoer ziet u het gemaakte beheerde inkomend verkeer:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
U kunt controleren of het AKS-archief werkt en uw browser verwijst naar het openbare IP-adres van de controller voor inkomend verkeer. Zoek het IP-adres met kubectl:
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
De invoegtoepassing voor toepassingsroutering verwijderen
Gebruik de kubectl delete namespace
opdracht om de bijbehorende naamruimte te verwijderen.
kubectl delete namespace aks-store
Gebruik de az aks approuting disable
opdracht om de invoegtoepassing voor toepassingsroutering uit uw cluster te verwijderen.
az aks approuting disable --name <ClusterName> --resource-group <ResourceGroupName>
Notitie
Om potentiële onderbreking van verkeer in het cluster te voorkomen wanneer de invoegtoepassing voor toepassingsroutering is uitgeschakeld, blijven sommige Kubernetes-resources, waaronder configMaps, geheimen en de implementatie waarop de controller wordt uitgevoerd, op het cluster aanwezig. Deze resources bevinden zich in de naamruimte van het app-routeringssysteem . U kunt deze resources verwijderen als ze niet meer nodig zijn door de naamruimte met kubectl delete ns app-routing-system
.
Volgende stappen
Aangepaste configuraties voor inkomend verkeer configureren laat zien hoe u een geavanceerde configuratie voor inkomend verkeer maakt en een aangepast domein configureert met behulp van Azure DNS voor het beheren van DNS-zones en het instellen van een beveiligd inkomend verkeer.
Als u wilt integreren met een interne Load Balancer van Azure en een privé-Azure DNS-zone wilt configureren om DNS-omzetting voor de privé-eindpunten in te schakelen voor het omzetten van specifieke domeinen, raadpleegt u Interne NGINX-ingangscontroller configureren voor azure-privé-DNS-zone.
Meer informatie over het bewaken van de metrische gegevens voor inkomend-nginx-controller die zijn opgenomen in de invoegtoepassing voor toepassingsroutering met Prometheus in Grafana (preview) als onderdeel van het analyseren van de prestaties en het gebruik van uw toepassing.
Azure Kubernetes Service