Usa los registros de flujo para guardar metadatos de tráfico de red, incluidos 5-tuplas, en Google Distributed Cloud (GDC) aislado para la pila de observabilidad en forma de registros consultables. Usa estos registros para lo siguiente:
- Conocer los flujos de tráfico de un servicio concreto de una organización.
- Entender e identificar problemas con el estado de la 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 Networking.
Antes de empezar
Debes obtener autorización para gestionar o ver los registros de flujo desde la consola de GDC. Para gestionar los registros de flujo, pide al administrador de gestión de identidades y accesos de tu organización que te conceda el rol de administrador de registros de flujo (
flowlog-admin). Para ver solo los registros de flujo, pide al administrador de gestión de identidades y accesos de tu organización que te conceda el rol Lector de registros de flujo (flowlog-viewer).Para obtener información sobre cómo definir enlaces de roles desde la consola de GDC, consulta Conceder acceso a recursos.
Antes de consultar y ver los registros de flujo en los paneles de control, debes obtener acceso a la instancia de monitorización. Para obtener más información, consulta Consultar y ver métricas.
Crear 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 de especificaciones.
Crear un registro de flujo con filtros de protocolo y espacio de nombres
Crea un archivo llamado
example-flowlog.yamlcon 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"Sustituye
FLOW_LOG_NAMEpor el nombre que hayas elegido para el registro de flujo.En este ejemplo, el registro de flujo captura todos los flujos para los que cualquier pod del espacio de nombres
gpc-systemokube-systemhaya iniciado una conexión TCP con cualquier pod del espacio de nombreskube-system. Deja de registrar los registros una hora después de que se cree el objeto.Crea el objeto de registro de flujo:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yamlSustituye
MANAGEMENT_API_SERVERpor la ruta de kubeconfig del servidor de la API Management zonal.Verifica que el valor de
FLOW_LOG_NAMEse haya conciliado correctamente y que el proceso de registro se haya iniciado examinando el campoStatus:kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform FLOW_LOG_NAMEEstado de ejemplo:
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:53ZEsta salida de ejemplo contiene las siguientes condiciones:
Propagated: la configuración del registro de flujo se ha enviado a los clústeresuser-vm-1,user-vm-2yorg-1-infra.Reconciled: el registro de flujo se ha programado correctamente en los clústeresuser-vm-1,user-vm-2yorg-1-infra.Logging: el registro de flujo no ha caducado ni se ha inhabilitado, no ha detectado ningún error y puede generar registros si los filtros coinciden con los flujos.- Los iconos
Start TimeyEnd Timeindican que el trabajo se inició a las19:17:53y que caduca a las20:17:53.
Para que este registro de flujo pueda generar entradas de registro correctamente, se deben cumplir las condiciones
Propagated,ReconciledyLogging.
Modificar un registro de flujo
Para modificar un registro de flujo, modifique la definición del objeto de registro de flujo creado en el archivo example-flowlog.yaml y vuelva a aplicarlo:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yaml
Ver registros de flujo en el panel de control de monitorización
Abre el panel de control de registros operativos. Para obtener más información, consulta Consultar registros operativos.
Defina el valor del menú desplegable identifier como
network-flow-logs, haga clic en add json parser y proporcione el siguiente valor a la consulta:{identifier="network-flow-logs"} | json.
Haz clic en Realizar una consulta. Se muestran las entradas del registro de flujo guardadas:

Usa los filtros para acotar aún más los resultados. Por ejemplo, en el desplegable Clúster, elija el valor
user-vm-1para ver solo los flujos recogidos del clústeruser-vm-1:
Consulta las entradas de registro de flujo, amplía la entrada para ver los detalles y añade más filtros de etiquetas según sea necesario con el icono de acceso directo. En este ejemplo, queremos filtrar aún más los flujos por su dirección IP de origen:

Haz clic en el icono de acceso directo
+para filtrar los flujos por un campo de metadatos específico.
Ver resultados por nombre de registro de flujo
Cuando se crean varios registros de flujo, se puede crear un filtro de etiquetas adicional para ver los resultados de uno o varios registros de flujo.
Para ver los resultados limitados a los registros generados por FLOW_LOG_NAME, cree un filtro de etiqueta con los siguientes valores:
Labelse ha establecido enOn. Se distingue entre mayúsculas y minúsculas.Operatorse ha establecido en~=. Se usa un comparador de expresiones regulares.Valuese ha establecido en/FLOW_LOG_NAME/. El valorFLOW_LOG_NAMEdebe estar entre/.
Filtra los resultados para ver solo los registros generados por flowlog1:

Referencias
- Documentación sobre el exportador dinámico de Hubble: https://docs.cilium.io/en/latest/observability/hubble-exporter/#dynamic-exporter-configuration