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
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: Cilium
Cilium is the part of a Kubernetes cluster that takes the hopeful suggestions made by Pods, Services, labels, and policies, then has the Linux kernel carry them out. It is networking, security, and flow visibility living close to the traffic. This is useful because Pods are temporary creatures. Their IP addresses behave accordingly.
The important idea is security identity. Cilium derives it from labels, so a policy can describe which workloads may talk instead of chasing every new pod address around the cluster like a person trying to label migrating birds. Addresses and routes still matter. They have merely stopped being the only words available for saying who is allowed to do what.
The traffic path is where the plot happens. The Cilium agent on every node turns Kubernetes state into eBPF programs and maps. An eBPF datapath can forward traffic, choose a Service backend, enforce policy, or report a verdict. The operator handles shared work. Hubble reports observed flows. This arrangement means a configuration object is not the end of a networking change. It is the beginning of a question: what did the path actually do?
Routing has two broad moods. Encapsulation carries pod traffic through a VXLAN or Geneve tunnel, which asks less of the underlay and spends some packet room. Native routing avoids that Cilium overlay, then asks the surrounding network to know the pod ranges. Neither gets a medal for being modern. The suitable choice is the one whose routing and failure behavior the operating team can explain.
Policy is similarly literal. Ingress and egress are separate, selectors decide which endpoints are involved, and a matching deny rule wins over an allow rule. Start by observing dependencies with Hubble, then test both the request that should work and the request that should fail. Hubble is not a replacement for logs, metrics, or traces. It is the useful witness standing beside the network path.
The surprise is that sidecar-free does not mean proxy-free. IP, TCP, and UDP processing stays in the eBPF path. HTTP, gRPC, DNS detail, and Gateway API work can introduce Envoy because somebody must understand the protocol rather than stare politely at port numbers.
Read the Intro for the component and traffic map. Use Slides to compare the layers and decisions. Keep the Cheatsheet nearby for routing modes, policy evaluation, flow commands, and failure signals. Then use the Practice Reference and Exercise to make one policy change in a disposable cluster and prove its verdict. That is where Cilium stops being a promising diagram and becomes infrastructure you can reason about.
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
- https://docs.cilium.io/en/stable/installation/kind/
Supports
- kind setup with the default CNI disabled
- Cilium installation and validation in a local multi-node cluster
- Connectivity tests covering Service and NetworkPolicy paths
- https://docs.cilium.io/en/stable/observability/hubble/index.html
Supports
- Hubble node-local observation scope
- Relay as the cluster-wide aggregation component
- Need to interpret flow evidence within configured observation scope
- https://github.com/cilium/cilium/releases/tag/v1.6.0
Supports
- 2019 Cilium 1.6 release
- Full kube-proxy replacement and socket-based load balancing
- https://github.com/cilium/cilium/releases/tag/v1.8.0
Supports
- 2020 Cilium 1.8 release
- Embedded Hubble and cluster-wide flow visibility
- https://github.com/cilium/cilium/releases/tag/v1.9.0
Supports
- 2020 Cilium 1.9 release
- Deny policies and policy precedence development
- https://github.com/cilium/cilium/releases/tag/v1.10.0
Supports
- 2021 Cilium 1.10 release
- WireGuard encryption and BGP Service address announcement
- https://isovalent.com/blog/post/cilium-release-112/
Supports
- 2022 Cilium 1.12 release
- Ingress, multi-cluster, service-mesh, and external-workload expansion
- https://isovalent.com/blog/post/cilium-release-113/
Supports
- 2023 Cilium 1.13 release
- Gateway API and mTLS datapath capabilities
- https://www.cncf.io/announcements/2023/10/11/cloud-native-computing-foundation-announces-cilium-graduation/
Supports
- 2023 CNCF graduation
- Cilium's evolution from CNI toward networking, policy, encryption, and observability
- https://isovalent.com/blog/post/cilium-1-15/
Supports
- 2024 Cilium 1.15 release
- Gateway API 1.0 and GRPCRoute support
- https://isovalent.com/blog/post/cilium-1-16/
Supports
- 2024 Cilium 1.16 release
- netkit and BGPv2 capabilities
- https://cilium.io/
Supports
- Cilium product landscape entry
- https://www.tigera.io/project-calico/
Supports
- Calico Open Source product landscape entry
- https://www.tigera.io/tigera-calico-cloud/
Supports
- Tigera Calico Cloud product landscape entry
- https://antrea.io/
Supports
- Antrea product landscape entry
- https://github.com/aws/amazon-vpc-cni-k8s
Supports
- Amazon VPC CNI product landscape entry
