Informazioni sull'osservabilità di GKE Dataplane V2

L'osservabilità di GKE Dataplane V2 fornisce metriche e insight di GKE Dataplane V2 sui workload nei cluster GKE su Google Cloud. Con l'osservabilità di GKE Dataplane V2 puoi:

L'osservabilità di GKE Dataplane V2 offre i seguenti strumenti per la risoluzione dei problemi:

  • Network Topology di un cluster Kubernetes
  • Una tabella dei verdict delle policy di rete Kubernetes con flussi di traffico in tempo reale e informazioni sulla connessione
  • Strumenti a riga di comando per la risoluzione dei problemi relativi ai flussi di traffico di Kubernetes

Metriche di GKE Dataplane V2

Le metriche di GKE Dataplane V2 forniscono informazioni sul flusso di traffico per:

  • Flussi di traffico: insight su come GKE gestisce i flussi tra pod e servizi.
  • Applicazione delle policy di rete:informazioni su come GKE applica le policy di rete di Kubernetes.

Puoi utilizzare le metriche di GKE Dataplane V2 per monitorare e risolvere i problemi dei workload Kubernetes utilizzando i seguenti strumenti:

  • Google Cloud Managed Service per Prometheus per visualizzare e analizzare le metriche di GKE Dataplane V2. Puoi modificare la configurazione di Google Cloud Managed Service per Prometheus per aggiungere o rimuovere le metriche che preferisci per l'importazione di Google Cloud Managed Service per Prometheus.
  • Esplora metriche di Cloud Monitoring per visualizzare i dettagli del flusso di traffico a livello di pod.
  • Cloud Monitoring per esplorare e utilizzare qualsiasi metrica. Ad esempio, puoi creare avvisi che vengono attivati quando le metriche di GKE Dataplane V2 superano determinate soglie.
  • Grafana autogestito per visualizzare le metriche raccolte da Google Cloud Managed Service per Prometheus.

Quando abiliti Google Cloud Managed Service per Prometheus:

  • GKE crea una risorsa PodMonitoring
  • GKE espone l'endpoint delle metriche

Per utilizzare le metriche con Google Cloud Managed Service per Prometheus e per poter creare una risorsa PodMonitoring, devi abilitare Google Cloud Managed Service per Prometheus sul cluster. Se non abiliti Google Cloud Managed Service per Prometheus, GKE espone l'endpoint delle metriche, ma non crea una risorsa PodMonitoring.

Quando abiliti le metriche di GKE Dataplane V2 per un cluster, Google Cloud Managed Service per Prometheus importa le seguenti metriche di GKE Dataplane V2:

Metrica GKE Dataplane V2 Tipo Descrizione
prometheus.googleapis.com/pod_flow_egress_flows_count/counter cumulativo Numero totale di flussi da un pod.
prometheus.googleapis.com/pod_flow_ingress_flows_count/counter cumulativo Numero totale di flussi verso un pod.

L'abilitazione delle metriche di GKE Dataplane V2 apre la porta delle metriche su ogni nodo Kubernetes.

Sono disponibili anche metriche aggiuntive, tra cui quelle della piattaforma di osservabilità open source Hubble. Per impostazione predefinita, Google Cloud Managed Service per Prometheus non importa queste metriche aggiuntive, ma puoi configurarlo per raccoglierle. Per raccogliere queste metriche, configura una risorsa personalizzata (CR) PodMonitoring.

La tabella seguente descrive altre metriche di Hubble:

Metrica di Hubble Tipo Descrizione
hubble_flows_processed_total cumulativo Numero totale di flussi elaborati.
hubble_drop_total cumulativo Numero totale di flussi eliminati.
hubble_port_distribution_total cumulativo Numero totale di flussi elaborati aggregati per numero di porta.
hubble_tcp_flags_total cumulativo Numero totale di flussi elaborati con determinati flag TCP impostati.
hubble_icmp_total cumulativo Numero totale di flussi ICMP elaborati.

Per raccogliere queste metriche aggiuntive, devi creare una risorsa PodMonitoring nel tuo cluster.

Ad esempio, per creare una risorsa PodMonitoring che raccoglie tutte le metriche Hubble disponibili, completa i seguenti passaggi:

  1. Salva il seguente manifest come pod-monitoring.yaml:

    apiVersion: monitoring.googleapis.com/v1
    kind: PodMonitoring
    metadata:
      name: hubble-metrics
      namespace: kube-system
      # The resource is created in the `kube-system` namespace because the Cilium pods that emit the metrics reside in that namespace
    spec:
      selector:
        matchLabels:
          k8s-app: cilium
      endpoints:
      - port: 9965
        interval: 30s
        path: /metrics
        metricRelabeling:
        - action: keep
          sourceLabels: [__name__]
          regex: (hubble_flows_processed_total|hubble_drop_total|hubble_port_distribution_total|hubble_tcp_flags_total|hubble_icmp_total)
    
  2. Applica il manifest al cluster eseguendo questo comando:

    kubectl apply -f pod-monitoring.yaml
    

    Dopo aver applicato questa configurazione, le metriche Hubble aggiuntive sono disponibili in Google Cloud Managed Service per Prometheus.

Strumenti di osservabilità di GKE Dataplane V2

L'osservabilità di GKE Dataplane V2 fornisce una soluzione Hubble gestita con osservabilità della rete e insight sulla sicurezza per i workload Kubernetes di cui è stato eseguito il deployment con GKE Dataplane V2.

Se abilitata, l'osservabilità di GKE Dataplane V2 esegue il deployment dei seguenti componenti nel tuo cluster:

  • Hubble Relay: un servizio che raccoglie i dati di telemetria di rete relativi ai tuoi pod da ogni nodo.

  • Hubble CLI: uno strumento di interfaccia a riga di comando che fornisce informazioni sul traffico in tempo reale all'interno del cluster.

Puoi eseguire il deployment del seguente componente dopo aver abilitato l'osservabilità di GKE Dataplane V2 nel cluster:

  • Hubble UI: uno strumento basato sul web che puoi utilizzare per visualizzare e analizzare i dati di telemetria di rete raccolti da Hubble Relay. Devi abilitare l'osservabilità di GKE Dataplane V2 per eseguire il deployment della UI di Hubble.

Come funzionano le metriche e l'osservabilità di GKE Dataplane V2

L'osservabilità di GKE Dataplane V2 utilizza i seguenti componenti e strumenti per raccogliere metriche e fornire insight sul traffico di rete:

  • GKE Dataplane V2: le metriche e l'osservabilità di GKE Dataplane V2 utilizzano il percorso dati di GKE Dataplane V2 basato su eBPF per raccogliere metriche sui flussi di traffico e sull'applicazione delle policy di rete per un pod in base a un determinato workload.

  • Google Cloud Managed Service per Prometheus: le metriche di GKE Dataplane V2 configurano l'agente Google Cloud Managed Service per Prometheus per importare le metriche aggregate in Google Cloud Managed Service per Prometheus, una soluzione di monitoraggio scalabile che può importare e archiviare grandi quantità di dati e che ti consente anche di basarti su Google Cloud Observability.

  • Hubble: l'osservabilità di GKE Dataplane V2 utilizza Hubble, un progetto di osservabilità open source. Hubble consente l'osservabilità della rete e insight sulla sicurezza per i workload Kubernetes di cui è stato eseguito il deployment con un piano dati eBPF.

    Gli eventi di flusso Hubble si verificano quando:

    • Viene stabilita una connessione di rete

    • Viene visualizzato per primo un flag TCP, che indica lo stato della connessione TCP

    • Un pacchetto viene trasmesso dopo che sono trascorsi almeno cinque secondi dall'ultimo evento di flusso

    Metriche Hubble: conteggia il numero di eventi di flusso in un cluster Kubernetes che puoi utilizzare per identificare i pod che comunicano tra loro.

  • Abilitazione delle metriche e dell'osservabilità: puoi abilitare GKE Dataplane V2 e l'osservabilità indipendentemente l'uno dall'altro. Per abilitare la visualizzazione della topologia di rete nella UI Hubble open source, devi abilitare l'osservabilità di GKE Dataplane V2.

  • Cluster Autopilot:

    • Le metriche sono abilitate per impostazione predefinita

    • Gli strumenti di osservabilità sono disattivati per impostazione predefinita

    • Devi creare la risorsa ClusterPodMonitoring per raccogliere le metriche in Google Cloud Managed Service per Prometheus

  • Cluster Standard:

    • Le metriche sono disattivate per impostazione predefinita

    • Gli strumenti di osservabilità sono disattivati per impostazione predefinita

    • Se hai abilitato Google Cloud Managed Service per Prometheus, viene creata automaticamente una risorsa PodMonitoring

    • Una risorsa PodMonitoring è contrassegnata come assicurati che esista. Puoi interrompere l'invio di metriche a Google Cloud Managed Service per Prometheus modificando la risorsa PodMonitoring per disabilitare tutte le metriche

Endpoint di osservabilità di GKE Dataplane V2

I componenti di osservabilità di GKE Dataplane V2 espongono i seguenti due endpoint di osservabilità:

  • Endpoint delle metriche: un endpoint HTTP che espone le metriche del traffico in formato Prometheus. Il pod anetd espone l'endpoint delle metriche su ogni nodo del cluster sulla porta 9965.

  • Porta Flows: un endpoint gRPC. Il pod hubble-relay espone l'endpoint della porta dei flussi come servizio Kubernetes ClusterIP sulla porta 443. Il pod hubble-relay è il backend per il servizio Kubernetes ClusterIP e tutte le richieste al servizio Kubernetes ClusterIP vengono inoltrate al pod hubble-relay. Puoi accedere alla porta di flusso utilizzando Hubble CLI o l'interfaccia utente di Hubble.

Limitazioni

  • L'osservabilità di GKE Dataplane V2 ha un limite di 5000 nodi a livello di cluster.
  • Le metriche e l'osservabilità di GKE Dataplane V2 funzionano solo nei cluster suGoogle Cloud con GKE Dataplane V2 abilitato.
  • Poiché le metriche sono basate sul flusso, non forniscono una rappresentazione accurata della quantità di dati trasmessi in un flusso di rete.
  • Quando le metriche di Dataplane V2 sono abilitate, la memoria del pod anetd potrebbe aumentare continuamente a causa della raccolta delle metriche di Hubble. Questo è il comportamento previsto, poiché le metriche vengono archiviate in memoria fino al riavvio del pod.

Passaggi successivi