Administrar registros de flujo

Usa los registros de flujo para guardar los metadatos del tráfico de red, incluidas las 5-tuplas, en Google Distributed Cloud (GDC) aislado para la pila de observabilidad en forma de registros consultables. Usa estos registros para lo siguiente:

  • Comprender los flujos de tráfico de un servicio específico en una organización
  • Comprender e identificar problemas con el estado de red de una carga de trabajo de Kubernetes
  • Verifica las políticas de red de Kubernetes.

El registro de flujo es una función de GDC basada en el proyecto de código abierto Hubble: https://github.com/cilium/hubble. Configura los registros de flujo con el recurso FlowLog de la API de Networking.

Antes de comenzar

  • Debes obtener autorización para administrar o ver los registros de flujo desde la consola de GDC. Para ver o administrar los registros de flujo, pídele al administrador de IAM de tu organización que te otorgue el rol de registro de flujo correspondiente.

    Para obtener información sobre cómo configurar vinculaciones de roles desde la consola de GDC, consulta Otorga acceso a los recursos.

  • Antes de consultar y ver los registros de flujo en los paneles, debes obtener acceso a la instancia de supervisión. Para obtener más información, consulta Cómo consultar y ver métricas.

Crea un registro de flujo

Crea un registro de flujo para guardar los metadatos del tráfico de red que se filtran según un conjunto determinado de especificaciones.

Crea un registro de flujo con filtros de protocolo y espacio de nombres

  1. Crea un archivo example-flowlog.yaml con el siguiente contenido:

    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"
    

    Reemplaza FLOW_LOG_NAME por el nombre elegido para el registro de flujo.

    En este ejemplo, el registro de flujo captura todos los flujos para los que cualquier pod en el espacio de nombres gpc-system o kube-system inició una conexión TCP a cualquier pod en el espacio de nombres kube-system. Se detiene el registro de los registros una hora después de la creación del objeto.

  2. Crea el objeto de registro de flujo:

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

    Reemplaza MANAGEMENT_API_SERVER por la ruta de acceso al kubeconfig del servidor de la API de Management zonal.

  3. Verifica que el valor de FLOW_LOG_NAME se haya conciliado correctamente y que el proceso de registro se haya iniciado. Para ello, examina el campo Status:

    kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform FLOW_LOG_NAME
    

    Ejemplo 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
    

    El resultado de este ejemplo contiene las siguientes condiciones:

    • Propagated: La configuración del registro de flujo se envió a los clústeres user-vm-1, user-vm-2 y org-1-infra.
    • Reconciled: El registro de flujo se programó correctamente en los clústeres user-vm-1, user-vm-2 y org-1-infra.
    • Logging: El registro de flujo no venció ni está inhabilitado, no tuvo ningún error y puede generar registros si los filtros coinciden con los flujos.
    • Los campos Start Time y End Time indican que el trabajo comenzó a las 19:17:53 y vence a las 20:17:53.

    Para que este registro de flujo pueda producir entradas de registro correctamente, todas las condiciones de Propagated, Reconciled y Logging deben ser verdaderas.

Modificar registro de flujo

Para modificar un registro de flujo existente, modifica la definición del objeto de registro de flujo creado en el archivo example-flowlog.yaml y vuelve a aplicarlo:

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

Visualiza los registros de flujo en el panel de supervisión

Para ver los registros de flujo, pídeles a los usuarios con el rol de registro de flujo correspondiente que marquen la opción Consultar registros operativos.

Referencias