KCNA domain - 12% of the exam

Cloud Native Architecture

Cloud Native Architecture is 12% of the KCNA exam. These are the objectives it covers, each with practice questions, with every answer explained.

The domain in numbers

39
Practice questions
5
Objectives
16
Easy
15
Medium
8
Hard

Where people go wrong

  • Treating in-place changes and ordered commands as the target model

    The wrong answers change things in place or step by step: editing files in a live container, hot-patching a binary, an agent that rewrites files on live servers, or an ordered sequence of kubectl commands. Immutable infrastructure replaces an instance with a rebuilt image and never edits it in place, so drift cannot build up. A declarative API stores the desired end state and lets controllers reconcile towards it, which an ordered command script does not do.

    See it in a sample question
  • Swapping SLI, SLO and SLA

    The wrong options scramble which acronym is which. The SLI is the measured value, such as the fraction of successful requests. The SLO is the internal target set on that value, used to steer engineering effort. The SLA is the external commitment that carries consequences if breached. An error budget is a related allowance derived from the target, so it is not the target figure itself.

    See it in a sample question
  • Using metrics or logs to follow one request across services

    Metrics and logs are offered for questions about where one request spent its time. Metrics aggregate across many requests per service, and logs are separate records per service unless they are correlated. Distributed tracing follows a single request across service boundaries and records a span with timing for each hop. Jaeger is a CNCF graduated tracing backend, while Prometheus scrapes and stores metrics.

    See it in a sample question
  • Naming the wrong autoscaler for scale to zero

    The wrong answers name an autoscaler that cannot reach zero or reads the wrong signal. A CPU-based Horizontal Pod Autoscaler does not scale to zero by default, the Vertical Pod Autoscaler changes resource requests, and the Cluster Autoscaler adds and removes nodes. Knative Serving scales HTTP request-driven services on concurrency and can scale to zero, while KEDA scales a workload from external event sources such as queue length, also down to zero.

    See it in a sample question
  • Using NetworkPolicy or Ingress where a service mesh is needed

    NetworkPolicy and Ingress are offered for requirements that belong to a service mesh. NetworkPolicy only permits or denies connections and cannot encrypt traffic, apply retries or emit per-call metrics. Ingress secures the edge for external traffic and routes by host and path, so it neither covers internal service-to-service calls nor splits requests by percentage weight. A mesh injects a sidecar proxy that provides mutual TLS, weighted traffic splitting and telemetry without application code changes.

    See it in a sample question

Objectives in this domain

What to study

The official documents this domain's practice questions cite most.

Sample questions from this domain

Free sampleCloud Native Architectureeasy

A platform team fixes production bugs by opening an SSH session into running containers and editing files in place. Over time the containers drift apart and nobody can reproduce a given container's exact state. Which cloud native practice removes this drift by treating running instances as disposable?

  • AMutable configuration management, where an agent continuously re-applies a desired file state onto each running container.
  • BVertical scaling, where each container is granted more CPU and memory so that fewer manual fixes are ever needed.
  • CImmutable infrastructure, where a change is shipped as a rebuilt image and the old container is replaced rather than edited. Correct
  • DBlue-green deployment, where traffic is split between two container versions so that live edits can be tested safely.
Immutable infrastructure eliminates configuration drift by replacing running instances with rebuilt images instead of editing them in place. When an instance is never changed after it is created, its state is fully determined by the image it was built from, so any change means building a new image and replacing the old instance, which keeps every instance reproducible and drift-free.

Why A is wrong: Tempting because configuration-management agents do enforce a target state, but they keep mutating live instances, which is the very source of drift, so instances never become disposable.

Why B is wrong: Tempting because more resources reduce some failures, but adding capacity does nothing about in-place edits or reproducibility and leaves the drift untouched.

Why C is correct: Correct: rebuilding the image and replacing the container means running instances are never modified, so every instance is reproducible from its image and drift cannot accumulate.

Why D is wrong: Tempting because blue-green does swap between versions, but it is a traffic and release strategy that still permits editing running containers and does not make instances immutable.

Free sampleCloud Native Architecturemedium

A team defines that 99.9 percent of API requests should complete in under 300 milliseconds, measured over each rolling 30-day window, and they use this figure internally to decide when to slow feature work and focus on reliability. It is a target they set for themselves, not a contract with customers and with no financial penalty attached. Which observability term describes this figure?

  • AA service level objective (SLO), an internal target set against a chosen reliability measure Correct
  • BA service level agreement (SLA), the externally committed guarantee that carries consequences if breached
  • CA service level indicator (SLI), the raw measured value of the reliability signal itself
  • DAn error budget, the amount of unreliability permitted before action is required
An SLO is an internal reliability target set against a measurement, distinct from the contractual SLA and the raw SLI measurement. The figure is a self-imposed target over a defined measurement with no customer contract or penalty, which is the definition of a service level objective rather than an SLA, SLI, or error budget.

Why A is correct: An SLO is precisely an internal reliability target defined over a measurement, used to steer engineering effort, matching the self-imposed 99.9 percent goal with no external contract.

Why B is wrong: An SLA is tempting because it also expresses a reliability figure, but an SLA is a contractual commitment to customers with penalties, whereas the described target is internal and penalty-free.

Why C is wrong: An SLI is tempting because it names the underlying measurement, but the SLI is the measured proportion of fast requests, not the target that proportion is meant to reach.

Why D is wrong: An error budget is a related concept derived from the target, but it is the allowance of failure the target leaves room for, not the target figure being described.

Free sampleCloud Native Architecturemedium

A team already stores metrics in Prometheus but cannot tell why a specific request was slow, because each service reports its own latency in isolation with no link between them. They want to introduce a signal that correlates the work done for one request across every service it touches. Which capability and matching CNCF project should they adopt?

  • ACentralised log aggregation, using Fluentd, a CNCF graduated project, to collect and forward log lines from every service.
  • BDistributed tracing, using Jaeger, a CNCF graduated project, to correlate the spans of one request across all the services it passes through. Correct
  • CAdditional metrics scraping, using Prometheus, a CNCF graduated project, to record more latency histograms per service.
  • DEvent recording, using Argo, a CNCF graduated project, to emit a notification each time a service handles the request.
Recognise distributed tracing as the signal that correlates one request across services, and identify Jaeger as the CNCF graduated tracing project. Neither metrics nor logs correlate a single request across service boundaries, because metrics aggregate and logs are discrete per-service records. Distributed tracing propagates a shared context so each service records a span tied to the same request, and Jaeger, a CNCF graduated project, stores and visualises those linked spans to expose where the request spent its time.

Why A is wrong: Log aggregation with Fluentd is genuinely useful and Fluentd is correctly named as graduated, but aggregated logs still arrive as per-service records and do not by themselves correlate the work of one request across services.

Why B is correct: Distributed tracing is the signal that links a single request's work across services, and Jaeger is the CNCF graduated tracing backend built for exactly this correlation.

Why C is wrong: More Prometheus histograms tempt because latency is the symptom, but metrics aggregate across requests and cannot isolate why one particular request was slow across the service chain.

Why D is wrong: This pairs a plausible-sounding idea with a real graduated project, but Argo is a workflow and delivery toolset, not a tracing system, and discrete events do not correlate one request end to end.

Free sampleCloud Native Architecturemedium

A background worker consumes messages from a broker queue. When the queue is empty the team wants the worker Deployment scaled to zero Pods, and when messages accumulate they want the replica count to grow in proportion to the queue length rather than to CPU usage. Which tool is designed to drive this event-based autoscaling?

  • AA HorizontalPodAutoscaler configured with an average CPU target on the worker.
  • BThe VerticalPodAutoscaler, which adjusts the worker's CPU and memory requests as load changes.
  • CKEDA, which scales a Deployment based on external event sources such as queue length and can scale it to zero when there are no events. Correct
  • DKnative Serving, which autoscales the worker on incoming HTTP request concurrency.
KEDA autoscales workloads on external event-source metrics such as queue length and supports scaling to zero. Event-driven autoscaling ties replica count to a metric from the event source itself; KEDA polls sources like a message queue's backlog and adjusts the Deployment accordingly, scaling to zero when no events are pending, which CPU-based or request-based autoscalers cannot do for a queue.

Why A is wrong: A CPU-based HorizontalPodAutoscaler is the default autoscaler, which makes it tempting, but it reacts to CPU rather than queue length and does not scale to zero, so an empty queue would leave Pods running.

Why B is wrong: It does respond to load, but the VerticalPodAutoscaler changes resource requests on existing Pods rather than the replica count, so it cannot scale out with the queue or scale to zero.

Why C is correct: KEDA reads metrics from external event sources like broker queue depth, scales the workload in proportion to pending events, and supports scaling to zero when the source is idle, matching every requirement.

Why D is wrong: Knative Serving also offers scale to zero, which is tempting, but it is driven by HTTP request concurrency and does not read a broker queue's depth, so it does not fit a message-consuming worker.

Free sampleCloud Native Architecturehard

A security team wants every service-to-service call inside the cluster to be encrypted in transit and wants each workload to present a verifiable cryptographic identity, without asking application developers to add TLS code to each service. Which service mesh capability directly delivers this?

  • ANetwork policies that restrict which Pods may open connections to which other Pods by label selectors.
  • BIngress TLS termination, which decrypts external HTTPS at the cluster edge before forwarding requests onward.
  • CMutual TLS between sidecar proxies, which encrypts traffic and gives each workload a certificate-based identity managed by the mesh. Correct
  • DSecrets mounted into each Pod holding a shared static key that all services use to encrypt their payloads.
Identify mutual TLS between mesh sidecars as the feature that encrypts internal traffic and gives each workload a cryptographic identity transparently. A service mesh issues and rotates per-workload certificates and configures the sidecars to negotiate mutual TLS on every hop. This authenticates both peers and encrypts the connection without any change to the application, which plain Ingress TLS or a shared key cannot achieve.

Why A is wrong: Tempting because network policy is a real security control and limits traffic, but it filters connections rather than encrypting them or issuing workload identities, so it does not meet the encryption-in-transit requirement.

Why B is wrong: Tempting because Ingress does handle TLS, but it secures the edge boundary and typically forwards in plaintext internally, so it does not encrypt every internal service-to-service call.

Why C is correct: Correct: a mesh can enable mutual TLS between the sidecars so both ends authenticate via certificates the mesh issues and rotates, encrypting traffic and providing workload identity with no application TLS code.

Why D is wrong: Tempting because Secrets do store sensitive material, but a shared static key gives no per-workload identity and shifts the encryption burden back into application code, which the requirement explicitly rules out.

Other domains in this exam

See also the KCNA cert hub, the study guide, and the cheat sheet.

Examworthy is not affiliated with or endorsed by Cloud Native Computing Foundation. Original, blueprint-aligned practice material only.