RousselTMLEARNING

Observabilité

Observer le réseau Kubernetes avec Cilium Hubble

Rendre visibles les flux réseau d'un cluster Kubernetes avec Cilium Hubble : architecture, CLI hubble observe, interface graphique, métriques Prometheus et diagnostic des paquets rejetés.

1. Hubble en bref #

La couche d'observabilité de Cilium.

Architecture #

Architecture de Hubble
Les métriques sont exposées par chaque agent ; les flux détaillés passent par Relay.

Cilium est un CNI Kubernetes fondé sur eBPF. Puisqu'il voit chaque paquet, il peut aussi produire des flux : qui parle à qui, sur quel port, avec quel verdict (transmis, rejeté), et pour HTTP, DNS ou Kafka, le détail de la requête. Hubble expose ces flux.

2. Installer et observer #

CLI cilium et hubble.

Activation #

cilium install
cilium status --wait
cilium hubble enable --ui
cilium hubble port-forward &      # Relay sur localhost:4245
hubble status
# ou avec Helm
helm upgrade cilium cilium/cilium -n kube-system --reuse-values \
  --set hubble.relay.enabled=true --set hubble.ui.enabled=true \
  --set hubble.metrics.enabled="{dns,drop,tcp,flow,port-distribution,httpV2}" 

hubble observe #

hubble observe --namespace boutique --follow
hubble observe --verdict DROPPED                      # paquets rejetés (network policies)
hubble observe --protocol dns --namespace boutique    # requêtes DNS
hubble observe --to-pod boutique/checkout --protocol http
hubble observe --from-label app=front -o json | jq '.flow.destination'
Bonne Pratique : hubble observe --verdict DROPPED est le premier réflexe quand « le service A ne joint plus le service B » après l'ajout d'une NetworkPolicy.

3. Interface et métriques #

Visualiser et alerter.

Hubble UI #

cilium hubble ui ouvre une carte des services d'un namespace, construite à partir des flux réels, avec la liste des flux et leurs verdicts. Idéal pour découvrir les dépendances d'une application inconnue.

Métriques Prometheus #

MétriqueUsage
hubble_drop_totalPaquets rejetés par raison (policy, erreur...)
hubble_dns_queries_total, hubble_dns_responses_totalVolume et erreurs DNS (NXDOMAIN)
hubble_http_requests_totalRequêtes HTTP par code (si visibilité L7 activée)
hubble_tcp_flags_totalSYN, RST : connexions refusées
- alert: PolicyDrops
  expr: sum by (reason) (rate(hubble_drop_total{reason="POLICY_DENIED"}[5m])) > 1
  for: 10m
  labels: { severity: warning }

Articles liés

eBPF expliqué : des programmes dans le noyau Linux pour observer sans instrumenter

Ce qu'est eBPF, comment un programme est vérifié puis exécuté dans le noyau, les points d'accroche (kprobes, …

Diagnostiquer avec bpftrace et les outils bcc

Les outils eBPF du diagnostic au quotidien : one-liners bpftrace (appels système, fichiers, latences), outils…

Instrumenter sans code avec Grafana Beyla (OpenTelemetry eBPF Instrumentation)

Obtenir métriques RED et traces HTTP/gRPC de n'importe quelle application sans la modifier : Grafana Beyla et…

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !