cAdvisor/Kubelet

Il componente kubelet espone le metriche relative a se stesso e quelle di cAdvisor sui container in esecuzione sul relativo nodo.

Come alternativa alla configurazione di questa integrazione, Cloud Monitoring offre una raccolta gestita pronta all'uso di metriche cAdvisor/Kubelet. L'opzione di raccolta completamente gestita fornisce un insieme di metriche definito e selezionato che viene configurato per impostazione predefinita in nuovi cluster.

L'integrazione descritta in questo documento offre tutte le metriche di cAdvisor, molte delle quali difficilmente serviranno e probabilmente vorrete escludere, ed è disponibile per Google Kubernetes Engine e altri ambienti Kubernetes. Il set gestito di metriche di cAdvisor/Kubelet è stato selezionato per fornire solo le metriche più utili ed è disponibile solo per GKE. Per ulteriori informazioni, consulta Pacchetto: metriche cAdvisor/Kubelet.

Se configuri la raccolta di metriche di cAdvisor come descritto in questo documento, la configurazione prevale sulla configurazione di cAdvisor gestita da GKE. La configurazione descritta in questo documento abilita un soprainsieme di metriche cAdvisor gestite.

Quando utilizzi l'approccio descritto in questo documento, invece di utilizzare una configurazione PodMonitoring personalizzata, puoi configurare la raccolta gestita per eseguire automaticamente lo scraping delle metriche cAdvisor e Kubelet modificando OperatorConfig. Puoi installare i manifest copiandoli in un file locale ed eseguendo kubectl apply -f FILE_NAME. Puoi anche installare manifest utilizzando Terraform.

  1. Apri la risorsa OperatorConfig per la modifica:

    kubectl -n gmp-public edit operatorconfig config
    
  2. Aggiungi alla risorsa la seguente sezione collection, mostrata in grassetto:

    apiVersion: monitoring.googleapis.com/v1
    kind: OperatorConfig
    metadata:
      namespace: gmp-public
      name: config
    collection:
      kubeletScraping:
        interval: 30s
    
  3. Salva il file e chiudi l'editor.

Dopo un breve lasso di tempo, verrà eseguito lo scraping degli endpoint della metrica Kubelet e le metriche diventeranno disponibili per l'esecuzione di query in Managed Service per Prometheus.

Lo scraping di kubelet include alcuni filtri predefiniti e puoi aggiungere ulteriori filtri alla sezione collection della risorsa OperatorConfig come mostrato di seguito. La sezione di configurazione filter.matchOneOf ha la stessa semantica dei parametri match[] per la federazione Prometheus.

L'esempio seguente filtra le metriche che iniziano con container_foo o container_bar:

collection:
  filter:
    matchOneOf:
    - '{__name__!~"container_foo.*|container_bar.*"}'

Puoi anche utilizzare questo filtro raccolta OperatorConfig a scopo di debug. Ad esempio, potresti voler disabilitare temporaneamente la raccolta di una determinata metrica nel cluster senza modificare alcuna risorsa PodMonitoring.

Suggerimenti per configurazioni avanzate di cAdvisor

Se esegui il deployment di cAdvisor autonomamente o fornisci una configurazione avanzata a Kubelet con cAdvisor, tieni presente che è possibile collegare etichette aggiuntive utilizzando le impostazioni avanzate di cAdvisor.

In particolare, evita di collegare etichette di container o variabili di ambiente Kubernetes alle tue metriche e, in caso affermativo, controlla rigorosamente queste etichette utilizzando un pattern di lista consentita (ad esempio, usando la sezione metricRelabeling di PodMonitoring).

Controllare il numero di etichette aggiunte alle metriche può aiutarti a evitare di superare il limite relativo al numero di etichette.