Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Attenzione
Kubernetes SIG Network e il Security Response Committee hanno annunciato il ritiro del progetto Ingress NGINX, con manutenzione terminata nel marzo 2026. Microsoft fornirà il supporto ufficiale per le patch di sicurezza critiche per le risorse di ingresso NGINX per il routing delle applicazioni fino a novembre 2026.
AKS è allineato con Kubernetes upstream e usa l'API Gateway come standard a lungo termine per la gestione del traffico in ingresso e L7. Eseguire la migrazione prima che il supporto termini a novembre 2026, in base ai requisiti:
- Utenti del componente aggiuntivo di routing dell'applicazione e utenti OSS NGINX: eseguire la migrazione sull'implementazione dell'API Gateway del routing dell'applicazione per un'interfaccia di gestione del traffico in ingresso basata sull'API Gateway o sul Gateway applicazione per contenitori, che supporta sia l'API in ingresso che l'API Gateway.
- Requisiti avanzati per l'ingresso o per il service mesh: Valuta Gateway API per l'ingresso con il componente aggiuntivo service mesh Istio. È possibile usarlo per l'ingresso senza inserire sidecar nei carichi di lavoro. Se hai bisogno di limiti relativi alle dimensioni delle intestazioni e del corpo della richiesta, di script Lua o della limitazione della frequenza delle richieste, consulta le limitazioni e le alternative di Gateway API.
Il controller ingress-nginx nel componente aggiuntivo di routing dell'applicazione espone molte metriche per le richieste, il processo nginx e il controller che possono essere utili per analizzare le prestazioni e l'utilizzo dell'applicazione.
Il componente aggiuntivo di instradamento dell'applicazione espone l'endpoint delle metriche Prometheus di /metrics sulla porta 10254 e un servizio privato nginx-metrics.
Prerequisiti
- Un cluster del servizio Azure Kubernetes con il componente aggiuntivo di routing delle applicazioni abilitato.
- Un’istanza di Prometheus, ad esempio il servizio gestito di Monitoraggio di Azure per Prometheus.
Convalida dell'endpoint delle metriche
Per verificare che le metriche vengano raccolte, è possibile configurare un port forward da una porta locale alla porta 10254 nel nginx-metrics servizio.
kubectl port-forward -n app-routing-system service/nginx-metrics :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254
Prendere nota della porta locale (43307 in questo caso) e aprire http://localhost:43307/metrics nel browser. Verrà visualizzato il caricamento delle metriche del controller ingress-nginx.
È ora possibile terminare il processo port-forward per chiudere l'inoltro.
Configurazione del servizio gestito di Monitoraggio di Azure per Prometheus
Il servizio gestito di Monitoraggio di Azure per Prometheus è un servizio compatibile con Prometheus completamente gestito che supporta funzionalità standard del settore, ad esempio PromQL, dashboard Grafana e avvisi di Prometheus. Questo servizio richiede la configurazione del componente aggiuntivo per le metriche per l'agente Monitoraggio di Azure, che invia i dati a Prometheus. Se il cluster non è configurato con il componente aggiuntivo, è possibile seguire questo articolo per configurare il cluster del servizio Azure Kubernetes per inviare dati al servizio gestito di Monitoraggio di Azure per Prometheus.
Abilitare lo scorporo basato su Monitoraggio di servizio
Dopo aver aggiornato il cluster con l'agente di Monitoraggio di Azure, è necessario configurare l'agente per abilitare l'eliminazione dell'endpoint delle metriche. A tale scopo, è possibile creare un pod o un monitoraggio del servizio .
Di seguito viene creata una metrica di scorporo di Monitoraggio di servizio dal controller ingress-nginx distribuito dal componente aggiuntivo di instradamento dell'applicazione.
kubectl apply -f - <<EOF
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: nginx-monitor
namespace: app-routing-system
spec:
labelLimit: 63
labelNameLengthLimit: 511
labelValueLengthLimit: 1023
selector:
matchLabels:
app.kubernetes.io/component: ingress-controller
app.kubernetes.io/managed-by: aks-app-routing-operator
app.kubernetes.io/name: nginx
endpoints:
- port: prometheus
EOF
In pochi minuti, i pod ama-metrics nello spazio dei nomi kube-system devono riavviarsi e selezionare la nuova configurazione.
Esaminare la visualizzazione delle metriche in Grafana con gestione Azure
Dopo aver configurato il servizio gestito di Monitoraggio di Azure per Prometheus e Grafana con gestione Azure, è necessario accedere all'istanza di Grafana gestita.
Esistono due dashboard ufficiali di ingress-nginx che è possibile scaricare e importare nell'istanza di Grafana:
- Dashboard del controller ingress-nginx
- Dashboard delle prestazioni di gestione delle richieste
Dashboard del controller ingress-nginx
Questo dashboard offre visibilità del volume delle richieste, delle connessioni, delle percentuali di esito positivo, dei ricaricamenti della configurazione e delle configurazioni non sincronizzate. È anche possibile usarlo per visualizzare la pressione di I/O di rete, la memoria e l'uso della CPU del controller in ingresso. Infine, mostra anche i tempi di risposta percentile P50, P95 e P99 dei dati in ingresso e la velocità effettiva.
È possibile scaricare questo dashboard da GitHub.
Dashboard delle prestazioni di gestione delle richieste
Questo dashboard offre visibilità sulle prestazioni di gestione delle richieste delle diverse destinazioni upstream in ingresso, ovvero gli endpoint delle applicazioni a cui il controller di ingresso sta inoltrando il traffico. Mostra il percentile P50, P95 e P99 del numero totale di richieste e i tempi di risposta upstream. È anche possibile visualizzare aggregazioni di errori di richiesta e latenza. Usare questo dashboard per esaminare e migliorare le prestazioni e la scalabilità delle applicazioni.
È possibile scaricare questo dashboard da GitHub.
Importazione di un dashboard
Per importare un dashboard Grafana, espandere il menu a sinistra e fare clic su Importa da Dashboard.
Caricare quindi il file del dashboard desiderato e fare clic su Carica.
Passaggi successivi
- È possibile configurare il ridimensionamento dei carichi di lavoro usando le metriche di ingresso scorporate con Prometheus usando Kubernetes Event Driven Autoscaler (KEDA). Altre informazioni sull'integrazione di KEDA con il servizio Azure Kubernetes.
- Creare ed eseguire un test di carico con Test di carico di Azure per testare le prestazioni del carico di lavoro e ottimizzare la scalabilità delle applicazioni.