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
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
oukube-system
para qualquer pod no espaço de nomeskube-system
. Para de registar registos uma hora após a criação do objeto.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.Verifique se o valor
FLOW_LOG_NAME
foi reconciliado corretamente e se o processo de registo foi iniciado examinando o campoStatus
: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 clustersuser-vm-1
,user-vm-2
eorg-1-infra
.Reconciled
: o registo de fluxo foi programado com êxito nos clustersuser-vm-1
,user-vm-2
eorg-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
eEnd Time
indicam que a tarefa foi iniciada às19:17:53
e expira às20:17:53
.
Para que este registo de fluxo possa produzir entradas de registo com êxito, todas as condições
Propagated
,Reconciled
eLogging
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
- Documentação sobre o exportador dinâmico do Hubble: https://docs.cilium.io/en/latest/observability/hubble-exporter/#dynamic-exporter-configuration