Cilium
Cilium is a Kubernetes networking, observability, and security project that uses eBPF to enforce policies and route traffic at the Linux kernel level. It provides high-performance pod networking, transparent encryption, and identity-based access control without sidecar proxies.
itCloud native tools and technologies | OpenSkills.info
Intro
Cilium
Cilium is a networking, security, and observability platform for Linux and Kubernetes. It uses eBPF programs in the Linux kernel to connect workloads, load-balance services, enforce policy, and expose network behavior.
The central mental model is identity-aware control attached to the network path.
Kubernetes intent Cilium control plane
pods, services, policies ---> agents and operator
|
v
application traffic ------> eBPF datapath ------> destination
|
+------> Hubble flow data
Cilium can be your Kubernetes Container Network Interface plugin, or CNI plugin. It can also replace kube-proxy, enforce extended policies, provide Hubble observability, connect clusters, encrypt traffic, and implement Gateway API routes. Those features share a datapath, but you do not need to enable them all.
Why Cilium exists
Kubernetes workloads appear, disappear, and move between nodes. Their IP addresses change with them. A rule system built only around changing IP addresses can become difficult to operate at cluster scale.
Cilium assigns security identities to endpoints based on labels. Policy can then describe which workload identities may communicate. The datapath enforces that decision as traffic crosses kernel hooks.
This separates security intent from a specific pod IP. It also connects networking and observability. The same datapath that forwards or drops traffic can report what it observed and why.
eBPF makes this model possible. eBPF lets verified programs run at defined hooks inside the Linux kernel. Cilium loads programs at networking hooks and supplies them with state held in eBPF maps. The kernel executes those programs as packets or socket operations reach the hooks.
You do not write eBPF programs to use Cilium. The Cilium agent translates cluster state and configuration into datapath programs and map entries.
The main components
A typical Kubernetes deployment has several cooperating components.
The Cilium agent
The Cilium agent runs on each node. It watches Kubernetes events, manages local endpoints, loads eBPF programs, updates maps, and exposes local health and debugging information.
The agent is close to the datapath because each node must make forwarding and policy decisions for its own traffic. A broken agent can affect new configuration on that node even when already-loaded datapath state continues to exist.
The Cilium operator
The operator handles cluster-wide control-plane work that should not run independently on every node. Its exact responsibilities depend on enabled features. Examples include address-management tasks and processing resources for some service features.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://docs.cilium.io/en/stable/overview/intro/
Supports
- Cilium as open source networking, security, and observability software
- eBPF as the foundation for kernel-level visibility and control
- Identity-aware policy based on workload labels rather than only IP addresses
- CNI, load-balancing, Cluster Mesh, policy, service-mesh, and Hubble capability map
- https://docs.cilium.io/en/stable/overview/component-overview/
Supports
- Per-node Cilium agent responsibilities
- Cilium operator and CNI plugin component boundaries
- Hubble server, Relay, UI, and command-line component roles
- eBPF programs, hooks, maps, Kubernetes custom resources, and optional data-store roles
- https://docs.cilium.io/en/stable/operations/system_requirements/
Supports
- Supported host architectures and minimum Linux kernel requirements
- Distribution compatibility and feature-specific kernel requirements
- Kubernetes custom resources as the default state store for new installations
- Need to validate host and platform prerequisites before installation
- https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/
Supports
- Supported quick-install path and distribution-specific preparation
- Cilium CLI installation and cluster installation flow
- Cilium status and connectivity testing after installation
- Platform-specific CNI ownership and unmanaged-pod considerations
- https://docs.cilium.io/en/stable/network/ebpf/intro/
Supports
- Linux networking hooks used by the Cilium eBPF datapath
- Combination of eBPF programs into higher-level networking behavior
- XDP and traffic-control hook roles
- Datapath actions for forwarding, filtering, and policy
- https://docs.cilium.io/en/stable/network/concepts/routing/
Supports
- Encapsulation with VXLAN or Geneve and node-reachability requirements
- VXLAN and Geneve default ports
- Encapsulation overhead and MTU tradeoffs
- Native-routing requirements for routable pod address ranges
- Direct routes, cloud routes, and routing-daemon integration choices
- https://docs.cilium.io/en/stable/security/policy/
Supports
- Cilium policy language and enforcement model
- Kubernetes distribution of NetworkPolicy and Cilium policy resources
- Ingress and egress policy directions
- Policy selection and endpoint enforcement concepts
- https://docs.cilium.io/en/stable/network/kubernetes/policy/
Supports
- Standard NetworkPolicy support for Layer 3 and Layer 4 controls
- CiliumNetworkPolicy extended Layer 3 through Layer 7 controls
- CiliumClusterwideNetworkPolicy cluster scope
- Risks of combining policy types without understanding the complete allow set
- https://docs.cilium.io/en/stable/security/policy/deny/
Supports
- Deny policy precedence over allow policy
- Deny behavior across Cilium and Kubernetes policy resource types
- https://docs.cilium.io/en/stable/gettingstarted/hubble_setup/
Supports
- Hubble as Cilium's network and security observability layer
- Hubble enablement and Relay deployment
- Relay node-connectivity requirement on TCP port 4244
- Status verification before using Hubble
- https://docs.cilium.io/en/stable/gettingstarted/hubble/
Supports
- Hubble UI service map and individual flow display
- Cilium connectivity test traffic as observable Hubble input
- Namespace-oriented inspection of application dependencies
- Local UI access through the Cilium CLI
- https://docs.cilium.io/en/stable/network/kubernetes/kubeproxy-free/
Supports
- Cilium eBPF implementation of Kubernetes Service handling
- Socket-level and packet-level load-balancing paths
- Traffic modes, Service behavior, map sizing, and platform configuration
- Need to test source addresses, external traffic, affinity, and API server access
- https://docs.cilium.io/en/stable/security/network/encryption-wireguard/
Supports
- WireGuard encryption for traffic between Cilium-managed endpoints
- Per-node key pairs and public-key distribution
- Same-node traffic behavior and UDP port 51871
- Overlay double encapsulation and MTU considerations
- https://docs.cilium.io/en/stable/network/clustermesh/intro/
Supports
- Cross-cluster datapath, policy, and load-balancing capability
- KVStoreMesh role in scalability and isolation
- Multi-cluster control-plane and identity concepts
- https://docs.cilium.io/en/stable/network/clustermesh/clustermesh/
Supports
- Compatible datapath mode prerequisite
- Non-overlapping pod CIDR and node-connectivity requirements
- Cluster identity and maximum-connected-cluster configuration
- Setup and verification path for Cluster Mesh
- https://docs.cilium.io/en/stable/network/clustermesh/policy/
Supports
- Cross-cluster identity-aware policy enforcement
- Policy resources not being automatically distributed across clusters
- Explicit selection of endpoints in local or remote clusters
- https://docs.cilium.io/en/stable/network/servicemesh/
Supports
- eBPF use for IP, TCP, and UDP processing
- Envoy use for application protocols such as HTTP, Kafka, gRPC, and DNS
- Sidecar-free service-mesh architecture and application-aware feature scope
- https://docs.cilium.io/en/stable/network/servicemesh/gateway-api/gateway-api/
Supports
- Supported Gateway API resources and prerequisites
- Cilium operator translation to Cilium Envoy configuration
- Cilium agent and Envoy responsibilities in the traffic path
- Gateway, route, class, address, and condition troubleshooting
- https://www.cncf.io/projects/cilium/
Supports
- Cilium's CNCF project record and graduated maturity status
- Official governance, repository, security, and project links
