Utilisez les journaux de flux pour enregistrer les métadonnées du trafic réseau, y compris les quintuplets, dans Google Distributed Cloud (GDC) air-gapped vers la pile d'observabilité sous forme de journaux interrogeables. Utilisez ces journaux pour :
- Comprendre les flux de trafic pour un service particulier dans une organisation.
- Comprendre et identifier les problèmes liés à l'état du réseau d'une charge de travail Kubernetes
- Vérifiez les règles de réseau Kubernetes.
Les journaux de flux sont une fonctionnalité GDC basée sur le projet Open Source Hubble : https://github.com/cilium/hubble. Configurez les journaux de flux à l'aide de la ressource FlowLog de l'API Networking.
Avant de commencer
Vous devez obtenir l'autorisation de gérer ou d'afficher les journaux de flux depuis la console GDC. Pour afficher ou gérer les journaux de flux, demandez à votre administrateur IAM de l'organisation de vous accorder le rôle de journal de flux correspondant.
Pour savoir comment définir des liaisons de rôle à partir de la console GDC, consultez Accorder l'accès aux ressources.
Avant de pouvoir interroger et afficher les journaux de flux dans les tableaux de bord, vous devez obtenir l'accès à l'instance de surveillance. Pour en savoir plus, consultez Interroger et afficher les métriques.
Créer un journal de flux
Créez un journal de flux pour enregistrer les métadonnées du trafic réseau filtrées par un ensemble de spécifications donné.
Créer un journal de flux avec des filtres de protocole et d'espace de noms
Créez un fichier nommé
example-flowlog.yamlavec le contenu suivant :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"Remplacez
FLOW_LOG_NAMEpar le nom choisi pour le journal de flux.Dans cet exemple, le journal de flux capture tous les flux pour lesquels une connexion TCP a été démarrée par un pod dans l'espace de noms
gpc-systemoukube-systemvers un pod dans l'espace de nomskube-system. L'enregistrement des journaux s'arrête une heure après la création de l'objet.Créez l'objet de journal de flux :
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yamlRemplacez
MANAGEMENT_API_SERVERpar le chemin d'accès au fichier kubeconfig du serveur d'API Management zonal.Vérifiez que la valeur
FLOW_LOG_NAMEa été correctement réconciliée et que le processus de journalisation a démarré en examinant le champStatus:kubectl --kubeconfig MANAGEMENT_API_SERVER describe -n platform FLOW_LOG_NAMEExemple d'état :
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:53ZCet exemple de résultat contient les conditions suivantes :
Propagated: la configuration des journaux de flux a été envoyée aux clustersuser-vm-1,user-vm-2etorg-1-infra.Reconciled: le journal de flux a été programmé avec succès sur les clustersuser-vm-1,user-vm-2etorg-1-infra.Logging: le journal de flux n'est pas expiré ni désactivé, n'a rencontré aucune erreur et peut générer des journaux si les filtres correspondent aux flux.Start TimeetEnd Timeindiquent que le job a commencé à19:17:53et qu'il expire à20:17:53.
Pour que ce journal de flux puisse générer des entrées de journal, toutes les conditions
Propagated,ReconciledetLoggingdoivent être remplies.
Modifier un journal de flux
Pour modifier un journal de flux existant, modifiez la définition de l'objet de journal de flux créé dans le fichier example-flowlog.yaml, puis appliquez-le de nouveau :
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f example-flowlog.yaml
Afficher les journaux de flux dans le tableau de bord de surveillance
Pour afficher les journaux de flux, demandez aux utilisateurs disposant du rôle de journal de flux correspondant de consulter Interroger les journaux opérationnels.Références
- Documentation sur l'exportateur dynamique Hubble : https://docs.cilium.io/en/latest/observability/hubble-exporter/#dynamic-exporter-configuration