Formazione
Percorso di apprendimento
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
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 routing dell'applicazione espone l'endpoint delle metriche Prometheus di /metrics
sulla porta 10254.
Importante
Le funzionalità di anteprima del servizio Azure Kubernetes sono disponibili in modalità self-service e opzionale. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto clienti con la massima diligenza possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:
Per convalidare la raccolta delle metriche, è possibile configurare una porta forward su uno dei pod controller ingress-nginx.
kubectl get pods -n app-routing-system
NAME READY STATUS RESTARTS AGE
external-dns-667d54c44b-jmsxm 1/1 Running 0 4d6h
nginx-657bb8cdcf-qllmx 1/1 Running 0 4d6h
nginx-657bb8cdcf-wgcr7 1/1 Running 0 4d6h
Inoltrare ora una porta locale alla porta 10254 in uno dei pod nginx.
kubectl port-forward nginx-657bb8cdcf-qllmx -n app-routing-system :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.
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 dei componenti aggiuntivi delle metriche per l'agente di 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 e inviare le metriche raccolte a un'istanza di Grafana con gestione Azure.
Dopo aver aggiornato il cluster con l'agente di Monitoraggio di Azure, è necessario configurare l'agente per abilitare lo scorporo in base alle annotazioni dei pod, che vengono aggiunte ai pod ingress-nginx. Un modo per impostare questa impostazione si trova in ama-metrics-settings-configmap
ConfigMap nello spazio dei nomi kube-system
.
Attenzione
In questo modo verrà sostituito l'oggetto ConfigMap ama-metrics-settings-configmap
esistente nell'oggetto kube-system
. Se si dispone già di una configurazione, è possibile eseguire un backup o unirla a questa configurazione.
È possibile eseguire il backup di un oggetto ConfigMap ama-metrics-settings-config
esistente, se esiste, eseguendo kubectl get configmap ama-metrics-settings-configmap -n kube-system -o yaml > ama-metrics-settings-configmap-backup.yaml
La configurazione seguente imposta il parametro podannotationnamespaceregex
su .*
per scorporare tutti gli spazi dei nomi.
kubectl apply -f - <<EOF
kind: ConfigMap
apiVersion: v1
metadata:
name: ama-metrics-settings-configmap
namespace: kube-system
data:
schema-version:
#string.used by agent to parse config. supported versions are {v1}. Configs with other schema versions will be rejected by the agent.
v1
config-version:
#string.used by customer to keep track of this config file's version in their source control/repository (max allowed 10 chars, other chars will be truncated)
ver1
prometheus-collector-settings: |-
cluster_alias = ""
default-scrape-settings-enabled: |-
kubelet = true
coredns = false
cadvisor = true
kubeproxy = false
apiserver = false
kubestate = true
nodeexporter = true
windowsexporter = false
windowskubeproxy = false
kappiebasic = true
prometheuscollectorhealth = false
# Regex for which namespaces to scrape through pod annotation based scraping.
# This is none by default. Use '.*' to scrape all namespaces of annotated pods.
pod-annotation-based-scraping: |-
podannotationnamespaceregex = ".*"
default-targets-metrics-keep-list: |-
kubelet = ""
coredns = ""
cadvisor = ""
kubeproxy = ""
apiserver = ""
kubestate = ""
nodeexporter = ""
windowsexporter = ""
windowskubeproxy = ""
podannotations = ""
kappiebasic = ""
minimalingestionprofile = true
default-targets-scrape-interval-settings: |-
kubelet = "30s"
coredns = "30s"
cadvisor = "30s"
kubeproxy = "30s"
apiserver = "30s"
kubestate = "30s"
nodeexporter = "30s"
windowsexporter = "30s"
windowskubeproxy = "30s"
kappiebasic = "30s"
prometheuscollectorhealth = "30s"
podannotations = "30s"
debug-mode: |-
enabled = false
EOF
In pochi minuti, i pod ama-metrics
nello spazio dei nomi kube-system
devono riavviarsi e selezionare la nuova configurazione.
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:
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.
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.
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.
Feedback su Azure Kubernetes Service
Azure Kubernetes Service è un progetto di open source. Selezionare un collegamento per fornire feedback:
Formazione
Percorso di apprendimento
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization