Sobre a observabilidade do GKE Dataplane V2

A observabilidade do GKE Dataplane V2 fornece métricas e insights do GKE Dataplane V2 para cargas de trabalho em clusters do GKE no Google Cloud. Com a observabilidade do GKE Dataplane V2, a partir da versão 1.28 ou mais recente do GKE, é possível:

A observabilidade do GKE Dataplane V2 oferece as seguintes ferramentas de solução de problemas:

  • Uma topologia de rede de cluster do Kubernetes
  • Uma tabela de vereditos da política de rede do Kubernetes com fluxos de tráfego ativos e informações de conexão
  • Ferramentas de linha de comando para solução de problemas de fluxos de tráfego do Kubernetes

Métricas do GKE Dataplane V2

As métricas do GKE Dataplane V2 fornecem informações sobre o fluxo de tráfego para:

  • Fluxos de tráfego: insights sobre como o GKE processa fluxos entre pods e serviços.
  • Aplicação da política de rede: informações sobre como o GKE aplica políticas de rede do Kubernetes.

Use as métricas do GKE Dataplane V2 para monitorar e resolver problemas de cargas de trabalho do Kubernetes com as seguintes ferramentas:

  • Serviço gerenciado do Google Cloud para Prometheus para visualizar e analisar suas métricas do GKE Dataplane V2. É possível modificar a configuração do Google Cloud Managed Service para Prometheus para adicionar ou remover as métricas de sua preferência para o processamento do Google Cloud Managed Service para Prometheus.
  • Explorador de métricas do Cloud Monitoring para ver detalhes do fluxo de tráfego no nível do pod.
  • Cloud Monitoring para explorar e usar qualquer métrica. Por exemplo, é possível criar alertas que são acionados quando as métricas do GKE Dataplane V2 excedem determinados limites.
  • Grafana autogerenciado para visualizar métricas coletadas pelo Google Cloud Managed Service para Prometheus.

Quando você ativa o Google Cloud Managed Service para Prometheus:

  • O GKE cria um recurso PodMonitoring
  • O GKE expõe o endpoint de métricas

Para consumir métricas com o Google Cloud Managed Service para Prometheus e criar um recurso PodMonitoring, ative o Google Cloud Managed Service para Prometheus no cluster. Se você não ativar o Google Cloud Managed Service para Prometheus, o GKE irá expor o endpoint de métricas, mas não criará um recurso PodMonitoring.

Quando você ativa as métricas do GKE Dataplane V2 para um cluster, o Google Cloud Managed Service para Prometheus processa as seguintes métricas do GKE Dataplane V2:

Métrica do GKE Dataplane V2 Tipo Descrição
prometheus.googleapis.com/pod_flow_egress_flows_count/counter cumulativo Número total de fluxos de um pod.
prometheus.googleapis.com/pod_flow_ingress_flows_count/counter cumulativo Número total de fluxos para um pod.

A ativação das métricas do GKE Dataplane V2 abre a porta de métricas em cada nó do Kubernetes.

Outras métricas também estão disponíveis, incluindo a plataforma de observabilidade de código aberto Hubble. Por padrão, o Google Cloud Managed Service para Prometheus não ingere essas métricas adicionais, mas é possível configurar o Google Cloud Managed Service para Prometheus para coletá-las. Para coletar essas métricas, configure um recurso personalizado (CR) PodMonitoring.

A tabela a seguir descreve outras métricas do Hubble:

Métrica do Hubble Tipo Descrição
hubble_flows_processed_total cumulativo Número total de fluxos processados.
hubble_drop_total cumulativo O número total de fluxos caiu.
hubble_port_distribution_total cumulativo Número total de fluxos processados agregados por número de porta.
hubble_tcp_flags_total cumulativo Número total de fluxos processados com determinados sinalizadores TCP definidos.
hubble_icmp_total cumulativo Número total de fluxos de ICMP processados.

Para coletar essas métricas adicionais, crie um recurso PodMonitoring no cluster.

Por exemplo, para criar um recurso PodMonitoring que colete todas as métricas do Hubble disponíveis, siga estas etapas:

  1. Salve o seguinte manifesto como 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. Aplique o manifesto ao cluster executando o seguinte comando:

    kubectl apply -f pod-monitoring.yaml
    

    Depois de aplicar essa configuração, as métricas adicionais do Hubble vão estar disponíveis no Google Cloud Managed Service para Prometheus.

Ferramentas de observabilidade do GKE Dataplane V2

A observabilidade do GKE Dataplane V2 fornece uma solução gerenciada do Hubble com insights de observabilidade de rede e segurança para cargas de trabalho do Kubernetes implantadas com o GKE Dataplane V2.

Quando ativada, a observabilidade do GKE Dataplane V2 implanta os seguintes componentes no cluster:

  • Retransmissão Hubble: um serviço que coleta dados de telemetria de rede sobre seus pods de cada nó.

  • CLI Hubble: uma ferramenta de interface de linha de comando que fornece informações de tráfego em tempo real dentro do cluster.

É possível implantar o seguinte componente depois de ativar a observabilidade do GKE Dataplane V2 no cluster:

  • interface do Hubble: uma ferramenta baseada na Web que pode ser usada para ver e analisar os dados de telemetria de rede coletados pelo Hubble Relay. Ative a observabilidade do GKE Dataplane V2 para implantar a interface do Hubble.

Como as métricas e a observabilidade do GKE Dataplane V2 funcionam

A observabilidade do GKE Dataplane V2 usa os seguintes componentes e ferramentas para coletar métricas e fornecer insights sobre o tráfego de rede:

  • GKE Dataplane V2: as métricas e a observabilidade do GKE Dataplane V2 usam o caminho de dados do GKE Dataplane V2 com base no eBPF para coletar métricas sobre fluxos de tráfego e aplicação da política de rede para um pod com base em uma determinada carga de trabalho.

  • Google Cloud Managed Service para Prometheus: as métricas do GKE Dataplane V2 configuram o agente do Google Cloud Managed Service para Prometheus a fim de processar métricas agregadas no Google Cloud Managed Service para Prometheus, uma solução de monitoramento escalonável que pode ingerir e armazenar grandes quantidades de dados e que também permite aproveitar o Google Cloud Observability.

  • Hubble: a observabilidade do GKE Dataplane V2 usa o Hubble, um projeto de observabilidade de código aberto. O Hubble permite insights de observabilidade de rede e segurança para cargas de trabalho do Kubernetes implantadas com um plano de dados eBPF.

    Os eventos de fluxo do Hubble ocorrem quando:

    • Uma conexão de rede é estabelecida primeiro

    • Uma sinalização TCP é vista pela primeira vez, o que indica o estado da conexão TCP

    • Um pacote é transmitido após pelo menos cinco segundos desde o último evento de fluxo

    Métricas do Hubble: conta o número de eventos de fluxo em um cluster do Kubernetes que pode ser usado para identificar quais pods estão se comunicando entre si.

  • Como ativar métricas e observabilidade: é possível ativar o GKE Dataplane V2 e a observabilidade independentes uns dos outros. Para ativar a visualização da topologia de rede na interface de código aberto do Hubble, ative a observabilidade do GKE Dataplane V2.

  • Clusters do Autopilot:

    • As métricas são ativadas por padrão

    • As ferramentas de observabilidade estão desativadas por padrão

    • Você precisa criar o recurso ClusterPodMonitoring para coletar métricas no Google Cloud Managed Service para Prometheus

  • Clusters padrão:

    • As métricas são desativadas por padrão

    • As ferramentas de observabilidade estão desativadas por padrão

    • Se você tiver o Google Cloud Managed Service para Prometheus ativado, um recurso PodMonitoring será criado automaticamente

    • Um recurso PodMonitoring está marcado como garantir que existe. Para interromper o envio de métricas para o Google Cloud Managed Service para Prometheus, edite o recurso PodMonitoring para desativar todas as métricas

Endpoints de observabilidade do GKE Dataplane V2

Os componentes de observabilidade do GKE Dataplane V2 expõem os dois endpoints de observabilidade a seguir:

  • Endpoint de métricas: um endpoint HTTP que expõe métricas de tráfego no formato do Prometheus. O pod anetd expõe o endpoint de métricas em cada nó do cluster na porta 9965.

  • Porta de fluxos: um endpoint gRPC. O pod hubble-relay expõe o endpoint da porta de fluxos como um serviço ClusterIP do Kubernetes na porta 443. O pod hubble-relay é o back-end do serviço ClusterIP do Kubernetes, e todas as solicitações ao serviço ClusterIP do Kubernetes são encaminhadas para o pod hubble-relay. É possível acessar a porta de fluxo usando a CLI Hubble ou a interface do Hubble.

Limitações

  • A observabilidade do GKE Dataplane V2 tem um limite de 5.000 nós em todo o cluster.
  • As métricas e a observabilidade do GKE Dataplane V2 só funcionam em clusters no Google Cloud com o GKE Dataplane V2 ativado.
  • As métricas do GKE Dataplane V2 são semelhantes às do Hubble, porque são implementadas como métricas baseadas em fluxo para fornecer informações de conexão. Essas métricas não contabilizam a quantidade de dados nem o número de pacotes transmitidos. Como as métricas são baseadas em fluxo, elas não fornecem uma representação precisa da quantidade de dados transmitidos em um fluxo de rede.

A seguir