Ingresso NGINX gestito con il componente aggiuntivo Instradamento dell'applicazione
Un modo per instradare il traffico HTTP (Hypertext Transfer Protocol) e HTTPS (Hypertext Transfer Protocol Secure) alle applicazioni in esecuzione in un cluster del servizio Azure Kubernetes prevede l'utilizzo dell'oggetto ingresso di Kubernetes. Quando si crea un oggetto ingresso che usa le classi NGINX Ingress del componente aggiuntivo Instradamento dell'applicazione, il componente aggiuntivo crea, configura e gestisce uno o più controller in ingresso nel cluster del servizio Azure Kubernetes.
Questo articolo illustra come distribuire e configurare un controller in ingresso di base nel cluster del servizio Azure Kubernetes.
Componente aggiuntivo Instradamento dell'applicazione con funzionalità NGINX
Il componente aggiuntivo Instradamento dell'applicazione con NGINX offre quanto segue:
- Configurazione semplice dei controller in ingresso NGINX gestiti basata sul controller in ingresso NGINX di Kubernetes.
- Integrazione con DNS di Azure per la gestione delle zone pubbliche e private
- Terminazione SSL con certificati archiviati in Azure Key Vault.
Per altre configurazioni, vedere:
- Configurazione DNS e SSL
- Configurazione del componente aggiuntivo di instradamento dell'applicazione
- Configurare il controller di ingresso NGIX interno per la zona DNS privato di Azure.
Con il ritiro di Open Service Mesh (OSM) da Cloud Native Computing Foundation (CNCF), non è consigliabile usare il componente aggiuntivo di instradamento dell'applicazione con OSM.
Prerequisiti
- Una sottoscrizione di Azure. Se non hai una sottoscrizione Azure, crea un account gratuito.
- Interfaccia della riga di comando di Azure versione 2.54.0 o successiva installata e configurata. Eseguire
az --version
per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
Limiti
- Il componente aggiuntivo Instradamento dell'applicazione supporta fino a cinque zone DNS di Azure.
- Tutte le zone DNS di Azure globali integrate con il componente aggiuntivo devono risiedere nello stesso gruppo di risorse.
- Tutte le zone DNS di Azure private integrate con il componente aggiuntivo devono risiedere nello stesso gruppo di risorse.
- La modifica dell'ingresso-nginx
ConfigMap
nello spazio dei nomiapp-routing-system
non è supportata. - Le annotazioni dei frammenti di codice seguenti sono bloccate e impediranno la configurazione di un ingresso:
load_module
,lua_package
,_by_lua
,location
,root
,proxy_pass
,serviceaccount
,{
,}
,'
.
Abilitare l'instradamento dell'applicazione tramite l'interfaccia della riga di comando di Azure
Abilitare l'instradamento dell'applicazione in un nuovo cluster
Per abilitare l'instradamento dell'applicazione in un nuovo cluster, usare il comando az aks create
, specificando il flag --enable-app-routing
.
az aks create \
--resource-group <ResourceGroupName> \
--name <ClusterName> \
--location <Location> \
--enable-app-routing \
--generate-ssh-keys
Abilitare l'instradamento dell'applicazione in un cluster esistente
Per abilitare l'instradamento dell'applicazione in un cluster esistente, usare il comando az aks approuting enable
.
az aks approuting enable --resource-group <ResourceGroupName> --name <ClusterName>
Connettersi al cluster del servizio Azure Kubernetes
Per connettersi al cluster Kubernetes dal computer locale si usa kubectl, il client da riga di comando di Kubernetes. È possibile installarlo in locale usando il comando az aks install-cli
. Se si usa Azure Cloud Shell, kubectl
è già installato.
Configurare kubectl
per connettersi al cluster Kubernetes usando il comando az aks get-credentials.
az aks get-credentials --resource-group <ResourceGroupName> --name <ClusterName>
Distribuire un'applicazione
Il componente aggiuntivo Instradamento dell'applicazione usa annotazioni negli oggetti ingresso Kubernetes per creare le risorse appropriate.
- Componente aggiuntivo Instradamento dell'applicazione
- Open Service Mesh (ritirato)
- Annotazioni del servizio (ritirato)
Creare lo spazio dei nomi dell'applicazione denominato
hello-web-app-routing
per eseguire i pod di esempio usando il comandokubectl create namespace
.kubectl create namespace hello-web-app-routing
Creare la distribuzione copiando il manifesto YAML seguente in un nuovo file denominato deployment.yaml e salvare il file nel computer locale.
apiVersion: apps/v1 kind: Deployment metadata: name: aks-helloworld namespace: hello-web-app-routing spec: replicas: 1 selector: matchLabels: app: aks-helloworld template: metadata: labels: app: aks-helloworld spec: containers: - name: aks-helloworld image: mcr.microsoft.com/azuredocs/aks-helloworld:v1 ports: - containerPort: 80 env: - name: TITLE value: "Welcome to Azure Kubernetes Service (AKS)"
Creare il servizio copiando il manifesto YAML seguente in un nuovo file denominato service.yaml e salvare il file nel computer locale.
apiVersion: v1 kind: Service metadata: name: aks-helloworld namespace: hello-web-app-routing spec: type: ClusterIP ports: - port: 80 selector: app: aks-helloworld
Creare l'oggetto ingresso
Il componente aggiuntivo Instradamento dell'applicazione crea una classe Ingress nel cluster con il nome webapprouting.kubernetes.azure.com. Quando si crea un oggetto ingresso con questa classe, il componente aggiuntivo viene attivato.
Copiare il manifesto YAML seguente in un nuovo file denominato ingress.yaml e salvare il file nel computer locale.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: aks-helloworld namespace: hello-web-app-routing spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - host: <Hostname> http: paths: - backend: service: name: aks-helloworld port: number: 80 path: / pathType: Prefix
Creare le risorse cluster usando il comando
kubectl apply
.kubectl apply -f deployment.yaml -n hello-web-app-routing
L'output di esempio seguente mostra la risorsa creata:
deployment.apps/aks-helloworld created
kubectl apply -f service.yaml -n hello-web-app-routing
L'output di esempio seguente mostra la risorsa creata:
service/aks-helloworld created
kubectl apply -f ingress.yaml -n hello-web-app-routing
L'output di esempio seguente mostra la risorsa creata:
ingress.networking.k8s.io/aks-helloworld created
Verificare che l'oggetto in ingresso gestito sia stato creato
È possibile verificare che l'ingresso gestito sia stato creato usando il comando kubectl get ingress
.
kubectl get ingress -n hello-web-app-routing
L'output di esempio seguente mostra l'ingresso gestito creato:
NAME CLASS HOSTS ADDRESS PORTS AGE
aks-helloworld webapprouting.kubernetes.azure.com myapp.contoso.com 20.51.92.19 80, 443 4m
Rimuovere il componente aggiuntivo Instradamento dell'applicazione
Per rimuovere lo spazio dei nomi associato, usare il comando kubectl delete namespace
.
kubectl delete namespace hello-web-app-routing
Per rimuovere il componente aggiuntivo Instradamento dell'applicazione dal cluster, usare il comando az aks approuting disable
.
az aks approuting disable --name myAKSCluster --resource-group myResourceGroup
Quando il componente aggiuntivo Instradamento dell'applicazione è disabilitato, alcune risorse Kubernetes possono rimanere nel cluster. Queste risorse includono configMaps e secrets e sono create nello spazio dei nomi app-routing-system. Se si vuole, è possibile rimuovere queste risorse.
Passaggi successivi
Configurare configurazioni in ingresso personalizzate illustra come creare una configurazione in ingresso avanzata e configurare un dominio personalizzato usando DNS di Azure per gestire le zone DNS e configurare un ingresso sicuro.
Per l'integrazione con un bilanciamento del carico interno di Azure e configurare una zona DNS privato di Azure per abilitare la risoluzione DNS per endpoint privati e risolvere domini specifici, vedere Configurare il controller in ingresso NGINX interno per la zona DNS privato di Azure.
Informazioni sul monitoraggio delle metriche del controller in ingresso NGINX incluse nel componente aggiuntivo Instradamento dell'applicazione con Prometheus in Grafana (anteprima) come parte dell'analisi delle prestazioni e dell'utilizzo dell'applicazione.
Azure Kubernetes Service
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per