cAdvisor/Kubelet

Il kubelet espone le metriche su se stesso e le metriche di cAdvisor sui container in esecuzione sul suo nodo.

Cloud Monitoring offre una raccolta gestita pronta all'uso di metriche cAdvisor/Kubelet come alternativa alla configurazione di questa integrazione. L'opzione di raccolta completamente gestita fornisce un set di metriche selezionato e basato su opinioni, configurato per impostazione predefinita in nuovi cluster.

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

Se configuri la raccolta di metriche cAdvisor come descritto in questo documento, la configurazione sostituisce la configurazione di cAdvisor gestita da GKE. La configurazione descritta in questo documento attiva un soprainsieme di metriche di cAdvisor gestiti.

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 di cAdvisor e Kubelet modificando OperatorConfig. Puoi installare i manifest copiandoli in un file locale ed eseguendo quindi 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 periodo di tempo, gli endpoint delle metriche Kubelet verranno sottoposti a scraping 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 della configurazione filter.matchOneOf ha la stessa semantica dei parametri match[] per la federazione di Prometheus.

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

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

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

Suggerimenti per configurazioni avanzate di cAdvisor

Se esegui il deployment di cAdvisor autonomamente o fornisci una configurazione avanzata al tuo kubelet con cAdvisor, tieni presente che è possibile collegare altre etichette utilizzando le impostazioni avanzate di cAdvisor.

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

Controllare il numero di etichette aggiunte alle metriche può aiutarti a evitare di superare il numero massimo di etichette.