Skip to content

Service Mesh Use Cases: CCA practice questions

A service mesh moves cross-cutting networking concerns out of application code and into the platform.

By Ibrahim Yesilay · Published · Updated

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

What Service Mesh Use Cases covers in CCA

A service mesh moves cross-cutting networking concerns out of application code and into the platform. The Cilium documentation groups these concerns into five capabilities: resilient connectivity across clouds, clusters and premises; L7-aware traffic management such as load balancing, rate limiting and resiliency for HTTP, gRPC or WebSocket; identity-based security, where both sides authenticate each other by identity rather than by network address; observability and tracing; and transparency, meaning applications get all of this without code changes.

Cilium delivers these with two layers. Everything at the IP, TCP and UDP level is handled by eBPF in the kernel, while application protocols such as HTTP, gRPC and DNS are parsed by Envoy running once per node. That split shapes the practical use cases.

North-south traffic management is the most familiar one: Ingress and Gateway API resources expose applications, terminate TLS and split traffic by weight for canary or A/B releases. East-west traffic management, between workloads inside the cluster, is covered by GAMMA. An HTTPRoute or GRPCRoute binds to a Service as its parent instead of a Gateway, and Cilium steers traffic for that Service through the node-local Envoy. Cilium implements only producer routes, so such a route must live in the namespace of the Service it manages.

For cases that Gateway API cannot express, Cilium exposes Envoy configuration directly through the CiliumEnvoyConfig and CiliumClusterwideEnvoyConfig custom resources. The documented examples include path translation, URL rewriting, circuit breaking and traffic shifting. These resources receive only minimal validation and have no conflict resolution, so the documentation asks that they be treated as cluster admin objects. If only this Envoy-level traffic management is wanted, the enable-envoy-config option can be set without turning on the Ingress controller, and loadBalancer.l7.backend=envoy enables Envoy-based load balancing for ordinary Kubernetes Services.

Identity-based security is the use case behind mutual authentication. When it is enabled, a CiliumNetworkPolicy rule can carry an authentication block with mode required; the agent then performs a mutual TLS handshake with the peer node, using SPIFFE identities issued through SPIRE, before the policy lets traffic through. Pairing it with WireGuard or IPsec adds encryption of the traffic itself.

Observability rounds out the picture. Because Envoy streams its access logs to the agent, Hubble can show HTTP methods, paths and status codes for traffic covered by L7 rules, next to the L3 and L4 flows that eBPF records.

Key points

  • GAMMA attaches HTTPRoute or GRPCRoute to a Service for east-west routing.
  • Cilium supports GAMMA producer routes only, so the route must be in the namespace of the Service.
  • CiliumEnvoyConfig is a cluster-admin resource with minimal validation.
  • A policy rule with authentication mode required triggers the out-of-band mutual TLS handshake.

Three sample questions

9 CCA questions on Service Mesh Use Cases, 9 with explanations. How practice works

Question 1

Which of the following is NOT a traffic management feature provided by Cilium Service Mesh?
  1. A.Canary deployments with percentage-based traffic splitting
  2. B.Traffic routing based on HTTP headers
  3. C.Automatic sidecar proxy injection
  4. D.Circuit breaking and outlier detection

Correct answer: C

Cilium Service Mesh does NOT provide automatic sidecar proxy injection because it uses a sidecarless architecture. It does provide the other features like canary deployments, traffic routing based on HTTP headers, and circuit breaking.

Question 2

The Cilium documentation lists "Transparency" as one of the features of a service mesh. What does it mean?
  1. A.Mesh features work without any change to application code
  2. B.Every request is logged to an audit trail that users can read
  3. C.All mesh configuration is visible in the Hubble UI
  4. D.Applications link a mesh SDK so that features are visible in code

Correct answer: A

The Cilium service mesh overview defines transparency as making the mesh functionality available to applications in a transparent manner, without requiring changes to application code. Why the other options are wrong. "Every request is logged to an audit trail that users can ...": that describes observability, not transparency. "All mesh configuration is visible in the Hubble UI": the Hubble UI shows flows and a service map, which is not what the term means. "Applications link a mesh SDK so that features are visible ...": requiring an SDK is the opposite of transparency; the mesh moves logic out of the application.

Sources: CNCF CCA curriculum (CCA_Curriculum.pdf), Cilium docs: Service Mesh, Cilium docs: Envoy

Question 3

You want L7 routing rules for in-cluster traffic sent to the Service foo-svc, without writing any Envoy configuration yourself. Which approach does Cilium support?
  1. A.An Ingress with ingressClassName: cilium pointing at foo-svc
  2. B.An HTTPRoute whose parentRefs names the foo-svc Service
  3. C.A hand-written CiliumEnvoyConfig for foo-svc
  4. D.The annotation service.cilium.io/global: "true" on foo-svc

Correct answer: B

With GAMMA, a Route (HTTPRoute or GRPCRoute) binds to a Service as its parent instead of a Gateway; Cilium then sends traffic for that Service through the per-node Envoy, doing the same job as L7 traffic management without the user configuring Envoy directly. Why the other options are wrong. "An Ingress with ingressClassName: cilium pointing at ...": Ingress handles north-south traffic entering the cluster, not routing between workloads. "A hand-written CiliumEnvoyConfig for foo-svc": this works but requires writing Envoy configuration, which the question rules out. "The annotation service.cilium.io/global: "true" on foo-svc": this makes a Service global across a Cluster Mesh; it adds no L7 routing.

Sources: CNCF CCA curriculum (CCA_Curriculum.pdf), Cilium docs: GAMMA Support, Cilium docs: L7-Aware Traffic Management

Practice this topic

Focus mode keeps every question on Service Mesh Use Cases 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.