Technical explanation
The Hubble Server is embedded in each Cilium agent and consumes the eBPF-derived visibility data produced on that node. It exposes gRPC services through which clients can retrieve flow events, node and namespace information, server status, and related observability data. Embedding the server in the agent enables high-performance collection with comparatively low overhead.
Hubble Relay has a different role. It is a standalone component that discovers and connects to the Hubble Server instances running across the cluster. Relay aggregates their individual APIs to provide multi-node or cluster-wide visibility to clients such as the Hubble CLI and Hubble UI. It is therefore not the component embedded in the agent.
The Cilium CNI plugin is invoked when Kubernetes creates or removes pods and asks the local agent to configure their networking and datapath. The Cilium Operator performs cluster-wide management duties such as selected IPAM and shared-state operations. Neither component is responsible for exposing eBPF flow visibility.
This server–relay distinction is central to understanding Hubble’s distributed architecture: Server provides node-local visibility, while Relay combines multiple servers into a cluster-wide view.
Official references
Hubble Internals , Cilium Component Overview
Study Guide topic: Hubble Server, Hubble Relay, and distributed flow observability.
Submit