Faça a gestão dos registos de fluxo

Use registos de fluxo para guardar metadados de tráfego de rede, incluindo 5 tuplos, no Google Distributed Cloud (GDC) isolado para a pilha de observabilidade sob a forma de registos consultáveis. Use estes registos para:

  • Compreenda os fluxos de tráfego para um serviço específico numa organização.
  • Compreenda e identifique problemas com o estado da rede de uma carga de trabalho do Kubernetes.
  • Valide as políticas de rede do Kubernetes.

O registo de fluxo é uma funcionalidade do GDC baseada no projeto de código aberto Hubble: https://github.com/cilium/hubble. Configure os registos de fluxo através do recurso FlowLog da API Networking.

Antes de começar

  • Tem de obter autorização para gerir ou ver registos de fluxo a partir da consola do GDC. Para ver ou gerir registos de fluxo, peça ao administrador de IAM da organização que lhe conceda a função de registo de fluxo correspondente.

    Para ver informações sobre como definir associações de funções a partir da consola do GDC, consulte o artigo Conceda acesso a recursos.

  • Antes de consultar e ver registos de fluxo em painéis de controlo, tem de obter acesso à instância de monitorização. Para mais informações, consulte o artigo Consulte e veja métricas.

Crie um registo de fluxo

Crie um registo de fluxo para guardar metadados de tráfego de rede filtrados por um determinado conjunto de especificações.

Crie um registo de fluxo com filtros de protocolo e espaço de nomes

  1. Crie um ficheiro denominado example-flowlog.yaml com o seguinte conteúdo:

    apiVersion: networking.gdc.goog/v1
    kind: FlowLog
    metadata:
      name: "FLOW_LOG_NAME"
      namespace: "platform"
    spec:
      filters:
        - l4Protocols:
            - tcp
          source:
            namespacePodSelectors:
              - namespace: gpc-system
              - namespace: kube-system
          destination:
            namespacePodSelectors:
              - namespace: kube-system
      lifetime:
        duration: "1h"
    

    Substitua FLOW_LOG_NAME pelo nome escolhido para o registo de fluxo.

    Neste exemplo, o registo de fluxo captura todos os fluxos para os quais uma ligação TCP foi iniciada por qualquer pod no espaço de nomes gpc-system ou kube-system para qualquer pod no espaço de nomes kube-system. Para de registar registos uma hora após a criação do objeto.

  2. Crie o objeto de registo de fluxo:

    kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yaml
    

    Substitua MANAGEMENT_API_SERVER pelo caminho kubeconfig do servidor da API Management zonal.

  3. Verifique se o valor FLOW_LOG_NAME foi reconciliado corretamente e se o processo de registo foi iniciado examinando o campo Status:

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform FLOW_LOG_NAME
    

    Exemplo de estado:

    Status:
      Clusters:
        Cluster:  org-1-infra-cluster
        Conditions:
          Last Transition Time:  2024-01-19T01:46:11Z
          Message:
          Observed Generation:   1
          Reason:                ResourcesPropagated
          Status:                True
          Type:                  Propagated
        Name:                    cilium-flowlog-config
        Namespace:               kube-system
        Node:                    org-1-infra
        Cluster:                 user-vm-1-cluster
        Conditions:
          Last Transition Time:  2024-01-19T01:46:11Z
          Message:
          Observed Generation:   1
          Reason:                ResourcesPropagated
          Status:                True
          Type:                  Propagated
        Name:                    cilium-flowlog-config
        Namespace:               kube-system
        Node:                    user-vm-1
        Cluster:                 user-vm-2-cluster
        Conditions:
          Last Transition Time:  2024-01-19T01:46:11Z
          Message:
          Observed Generation:   1
          Reason:                ResourcesPropagated
          Status:                True
          Type:                  Propagated
        Name:                    cilium-flowlog-config
        Namespace:               kube-system
        Node:                    user-vm-2
      Conditions:
        Last Transition Time:  2024-01-18T19:17:53Z
        Message:
        Observed Generation:   1
        Reason:                Active
        Status:                True
        Type:                  Logging
        Last Transition Time:  2024-01-19T01:46:11Z
        Message:
        Observed Generation:   1
        Reason:                ResourcesPropagated
        Status:                True
        Type:                  Propagated
        Last Transition Time:  2024-01-18T19:17:53Z
        Message:
        Observed Generation:   1
        Reason:                Succeeded
        Status:                True
        Type:                  Reconciled
      Start Time:              2024-01-18T19:17:53Z
      End Time:              2024-01-18T20:17:53Z
    

    Este exemplo de saída contém as seguintes condições:

    • Propagated: a configuração do registo de fluxo foi enviada para os clusters user-vm-1, user-vm-2 e org-1-infra.
    • Reconciled: o registo de fluxo foi programado com êxito nos clusters user-vm-1, user-vm-2 e org-1-infra.
    • Logging: o registo de fluxo não está expirado nem desativado, não encontrou nenhum erro e pode produzir registos se os filtros corresponderem aos fluxos.
    • Os ícones Start Time e End Time indicam que a tarefa foi iniciada às 19:17:53 e expira às 20:17:53.

    Para que este registo de fluxo possa produzir entradas de registo com êxito, todas as condições Propagated, Reconciled e Logging têm de ser verdadeiras.

Modificar registo de fluxo

Para modificar um registo de fluxo existente, modifique a definição do objeto de registo de fluxo criado no ficheiro example-flowlog.yaml e aplique-o novamente:

kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yaml

Veja os registos de fluxo no painel de controlo de monitorização

Para ver os registos de fluxo, peça aos utilizadores com a função de registo de fluxo correspondente para verificarem os registos operacionais de consultas.

Referências