Begriff
Hubble
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Klassisches Monitoring (Prometheus) sagt dir: "Der Pod ist da." Klassisches Logging sagt dir: "Die App hat einen Fehler geloggt." Aber wer sagt dir: "Warum wurde das Paket von Pod A zu Pod B gedroppt?" Hubble ist das Teleskop für dein Netzwerk (gebaut auf Cilium und eBPF). Es sieht jedes einzelne Netzwerk-Paket im Cluster. Es zeichnet eine Service Map: Wer redet mit wem? Es zeigt dir genau: "Traffic von Frontend zu Backend wurde blockiert durch Network Policy 'deny-all'." Ohne Hubble ist Network-Debugging in Kubernetes "Blindflug".
Merksatz: Die Observability-Komponente von Cilium, die mithilfe von eBPF tiefgehende Einblicke in die Netzwerkkommunikation und Sicherheitsrichtlinien eines Kubernetes-Clusters bietet (Flow Logs, Service Maps).
- CLI:
hubble observe --follow. Wietcpdump, aber viel schlauer. Es zeigt nicht IPs, sondern Pod-Namen und DNS-Namen ("google.com"). - UI: Eine Webseite, die deinen Cluster visualisiert. Grüne Linien = Alles gut. Rote Linien = Dropped.
- Metrics: Hubble exportiert Metriken ("DNS Latency", "TCP Retransmits") an Prometheus.
1. Ring Buffer
Hubble Events werden in einem Ring Buffer im Kernel (perf ring buffer) gespeichert. Der Userspace-Agent (Hubble) liest sie asynchron. Das ist extrem effizient (Zero-Copy für die Daten, nur Metadaten werden kopiert).
2. L7 Visibility
Da Cilium L7 versteht, kann Hubble auch HTTP sehen. "POST /api/login -> 500 Error". Du siehst also nicht nur "TCP Verbindung da", sondern "HTTP Request fehlgeschlagen". Ohne Sidecar!
1. eBPF Map Bypassing (Socket Tracing)
Klassische Sidecar-Dämons (wie Linkerd) erzwingen Routing, in dem Traffic über Linux-Network Namespaces und IPTables-Firewalls gemangelt wird (Masquerading im Conntrack).
Cilium und eBPF operieren radikal sub-dermal. Hubble nutzt sock_map Hooks (Socket Redirection).
Kommuniziert Service A im Host Network mit Service B auf gleicher Hardware-Mac, greift Hubble den Stream direkt beim sendmsg() Sys-Call des VFS der Node ab und verknüpft die Buffer via Pointer direkt auf die recvmsg() Queue der benachbarten Container-TCP-Verbindung. Der Traffic toucht niemals den untergehenden TCP/IP-Stack von Linux Eth0. Dies lässt Observability Flow-Daten ($L4$) bei absolut überirdischen Netto-Linienspeed (100 Gbit/s) durch den Memory sausen, ohne Context-Switches der CPU.
2. Identity Awareness versus IP Address Chaos
In K8s-Logs crashen DevOps beim Versuch ein NAT-Spaghetti-Log abzuwickeln. Eine Source IP (10.12.0.4) ist im Ephemeral-Pod Wahnsinn nur Minuten existent.
Hubble killt IPs komplett.
Cilium vergibt systemweit kryptografisch abgesicherte Security Identities. Ein Pod mit den K8s-Labels tier=frontend wird auf die Identity 54402 compiliert. Jeder Flow in Hubbles Trace-Tabelle wird im Kernel sofort auf Metadate und Label aufgestanzt (source_identity, dest_identity). In der UI-Darstellung oder CLI-Pipe siehst du nie IPs, sondern durchweg die verifizierte K8s-Domänen-Bezeichnung ("Front-End zu Kafka-Broker"). Hubble behält diese semantische Kohärenz selbst bei globalen Multi-Cluster-Mashes extrem performant.
3. DNS Interception Filter
Netzwerk-Firewalls verbieten per Standard Egress-Netzverkehr in Kubernetes (Deny All Exterior).
Wenn eine App ein AWS-Bucket kontaktieren muss, ist die Ziel-IP unmöglich abzusichern (AWS IPs rotieren).
Hubble klinkt sich als Transaktions-Spion tief im UDP-Level 53 (DNS) Port ein (FQDN Policy in Cilium). Der Proxy fängt den "Ich frage nach s3.aws.com"-Request des Pods ab, extrahiert sofort aus der Cloudflare-Rückantwort alle gelisteten Ephemeral-IPs, pollt die eBPF MAP Firewall On-The-Fly up, erlaubt haargenau diesen IPs für exakt den TTL-Timeout (5 Minuten) die Passage, und trackt alle verworfenen Folge-Pings via Hubble Relay transparent weg, sollte die App noch verjährten Adressen nachtelefonieren.
Quick-Check
Brauche ich Cilium?
Ja. Hubble ist Teil von Cilium. Es funktioniert nicht mit Calico oder Flannel.Overhead?
Gering (< 1-2% CPU). eBPF kopiert nicht das Paket, sondern nur kleine Tracepoints. Viel effizienter als Sidecar-Proxies, die alles durchschleusen müssen.Vorratsdatenspeicherung?
Hubble speichert meist nur "Flows" (Metadaten), nicht den Payload (den Inhalt der Mail). Hubble Recorder kann Payload aufzeichnen (für Forensik), frisst aber Speicher.