Skip to content

Architecture: CCA practice questions

Cilium is built from a small set of cooperating programs, and most architecture topics come down to knowing which program owns which job. The Cilium agent, cilium-agent, runs on every node of the cluster (it is deployed as the cilium DaemonSet).

By Ibrahim Yesilay · Published · Updated

Independent community practice, not affiliated with or endorsed by CNCF or The Linux Foundation.

What Architecture covers in CCA

Cilium is built from a small set of cooperating programs, and most architecture topics come down to knowing which program owns which job. The Cilium agent, cilium-agent, runs on every node of the cluster (it is deployed as the cilium DaemonSet). It takes configuration from Kubernetes or its own API and turns it into networking, load balancing and network policy, and it manages the eBPF programs that the Linux kernel uses to control all traffic in and out of the containers on that node.

The Cilium operator handles tasks that should be done once for the whole cluster rather than once per node. The documentation is explicit that the operator is not in the critical path for any forwarding or network policy decision; if it is unavailable, the visible effects are delays, for example in IP address allocation and in kvstore heartbeat updates, not dropped traffic. Two command-line tools are easy to confuse. The cilium CLI is run from your workstation and talks to the cluster through kubeconfig, while cilium-dbg runs on a node, queries the REST API of the local agent and can read eBPF maps directly. The CNI plugin, cilium-cni, is invoked by Kubernetes whenever a pod is scheduled or terminated on a node, and it asks the local agent to set up or tear down that pod's datapath.

Hubble provides observability on top of the same datapath. The Hubble server is embedded in the agent on each node, Hubble Relay connects to all of those servers to give a cluster-wide view, the hubble CLI reads from Relay or from a local server, and Hubble UI draws a service dependency map from Relay data.

eBPF itself is the in-kernel engine. Programs are checked by an in-kernel verifier before they run and are translated to native code by a JIT compiler, and Cilium probes the kernel and uses newer features when they are present. State is stored in Kubernetes custom resources by default; an etcd key-value store is optional and exists as a scalability optimization.

Policy is tied to identity rather than addresses. A pod's security identity is derived from its labels, pods with the same labels share an identity, and rules allow traffic between identities, which separates security from network addressing.

For connectivity between nodes, encapsulation is the default because it asks the least of the network: nodes form a mesh of VXLAN (UDP 8472) or Geneve (UDP 6081) tunnels. Native routing, set with routing-mode: native and ipv4-native-routing-cidr, instead requires the underlying network to route pod CIDRs, either through a router or by installing routes on every node. Pod addresses come from an IPAM mode; cluster scope is the default, and others include Kubernetes host scope, multi-pool, CRD-backed and cloud modes such as AWS ENI, Azure and GKE.

Key points

  • The operator is not in the forwarding or policy path; an operator outage delays IP allocation rather than dropping traffic.
  • cilium (remote, kubeconfig) and cilium-dbg (on the node, local agent API) are different tools.
  • Encapsulation is the default routing mode; native routing needs a network that can route pod CIDRs.
  • Changing the IPAM mode of a live cluster can break connectivity; the only online migration is cluster-pool to multi-pool.

Three sample questions

8 CCA questions on Architecture, 8 with explanations. How practice works

Question 1

Which component of Cilium is responsible for monitoring and enforcing network policies on each Kubernetes node?
  1. A.Cilium Operator
  2. B.Cilium Hubble
  3. C.Cilium Agent
  4. D.Cilium CLI

Correct answer: C

The Cilium Agent runs on each node as a DaemonSet and is responsible for interacting with the Linux kernel to program eBPF, monitor, and enforce network policies. The Operator handles cluster-wide tasks, Hubble provides observability, and the CLI is a management tool.

Question 2

In Cilium, what does the term "identity" refer to?
  1. A.The unique IP address assigned to a pod
  2. B.The security context of a container
  3. C.A numeric identifier derived from pod labels that represents workload security identity
  4. D.The digital certificate used for encryption

Correct answer: C

In Cilium, "identity" refers to a numeric identifier derived from a pod's set of labels. This identity is used for policy enforcement, allowing Cilium to implement security policies based on workload characteristics rather than IP addresses, which can change.

Question 3

Which Cilium datapath mode does NOT use overlay encapsulation for pod-to-pod traffic across nodes?
  1. A.VXLAN
  2. B.Geneve
  3. C.Native routing
  4. D.IPsec

Correct answer: C

Native routing (or direct routing) does not use encapsulation for pod-to-pod traffic. Instead, it routes traffic directly between nodes using the underlying network infrastructure. VXLAN and Geneve are overlay encapsulation protocols, and IPsec provides encryption but is typically used with encapsulation.

Practice this topic

Focus mode keeps every question on Architecture until you leave it. 10 free guest answers, then a free account; no credit card.

Or open CCA practice across all topics.

Sources

The explanation above was checked against these official documents.

Frequently asked questions

Does Cilium need its own etcd cluster?

No. By default Cilium stores and propagates state through Kubernetes custom resources. An external or shared etcd key-value store is optional and is used to improve scalability in larger clusters.