Certifications · KCNA · Study Plan & Practice

KCNA Study Plan & Practice Bank

The KCNA is knowledge-based, not performance-based — there's no cluster to fix, no clock racing your typing speed, only four weighted domains asking whether you actually understand Kubernetes and the ecosystem around it. That changes what a good study plan looks like: shorter than a CKA plan, built around reading and retrieval instead of lab time, but just as deliberately sized to the exam's own math. This page does two jobs at once. First, a three-week roadmap that puts study time where the official curriculum puts marks — the biggest domain, Kubernetes Fundamentals, gets nearly half the plan, because it's nearly half the exam. Second, a 24-question practice bank, single-best-answer style, split across all four domains in the same proportion, with every option worked — not just which letter is correct, but why the other three were built to look right. Read the plan, work the bank once you've covered a domain, and use the readiness checklist near the end before you book anything.

☺ Explain it like I'm 10

Some tests hand you a broken toy and a screwdriver. This one just asks you questions about how toys work — no screwdriver required. That sounds easier, and in one way it is: you don't need a real cluster on a real laptop to pass. But it's tricky in its own way, because four of the answer choices on every question look almost right, and only one of them is actually right for the exact question being asked. So this page does two things: it gives you three weeks of reading, sized so the topic worth almost half the test gets almost half your time, not just an equal slice like the other three. And it gives you twenty-four practice questions to get good at spotting which "almost right" door is the real one — because knowing the facts and picking the right door under pressure turn out to be two different skills.

🦉🐿️Your hosts for this topic: Professor Owl & Nutty the Squirrel — Owl frames each of the four weighted domains and explains why the curriculum shapes them the way it does; Nutty sorts three weeks of reading and twenty-four practice questions into a schedule you can actually follow, then keeps score by domain instead of by gut feeling.

The domain-weighted study budget

☺ Like you're 10: The test doesn't give every topic the same number of points, so your calendar shouldn't give every topic the same number of hours either.

These are the four domains and weights exactly as published in the CNCF's Kubernetes and Cloud Native Associate (KCNA) Exam Curriculum. There are four, they carry no sub-weights, and they sum to exactly 100% — 44 + 28 + 16 + 12. See the KCNA blueprint page for the full competency list and what each one actually asks. The shape is blunt: Kubernetes Fundamentals alone is 44% — more than the other three domains put together minus one point — and it's also the domain most candidates over-rate themselves in, because every sentence in it sounds familiar even when the underlying distinction (a Job versus a CronJob, a request versus a limit) isn't actually solid yet.

🦉Kubernetes Fundamentals
44%
🐦Container Orchestration
28%
🤖Cloud Native Application Delivery
16%
🐘Cloud Native Architecture
12%

Underneath those four percentages sit 13 published competencies: four under Kubernetes Fundamentals (Core Concepts, Administration, Scheduling, Containerization), four under Container Orchestration (Networking, Security, Troubleshooting, Storage), two under Cloud Native Application Delivery (Application Delivery, Debugging), and three under Cloud Native Architecture (Observability, Cloud Native Ecosystem and Principles, Cloud Native Community and Collaboration). Turning weight and competency count into an hours budget gives a plan you can actually schedule against:

DomainWeightCompetenciesStudy-budget hours
🦉 Kubernetes Fundamentals44%4~15 hrs
🐦 Container Orchestration28%4~10 hrs
🤖 Cloud Native Application Delivery16%2~6 hrs
🐘 Cloud Native Architecture12%3~4 hrs
Domain core, total100%13~35 hrs

That ~35-hour core doesn't include orientation, the practice bank below, or a mock exam — budget another ~12–13 hours for those, for a full plan of roughly 47–48 hours. Spread across three weeks that's around 16 hours a week, a genuine part-time-study pace rather than a crash course, and noticeably lighter than a CKA plan's ~125–130 hours — there's no lab to build, no kubeadm to bootstrap, no speed drilling, because nothing here is graded on what you can type under a clock. If you already run clusters in production, compress this to a single week of the practice bank and the readiness checklist; if Kubernetes is genuinely new to you, stretch it to four or five weeks rather than cutting corners on Fundamentals.

A three-week roadmap

☺ Like you're 10: Week one is almost half the plan on purpose — it's almost half the test. The last week is for questions, not new reading.

Three weeks, sized to the budget above. Week 1 gets by far the largest share because Kubernetes Fundamentals is 44% of the paper on its own. Weeks 2 and 3 together carry the remaining 56%, and week 3 folds two smaller domains — Application Delivery and Cloud Native Architecture — into one week, since 16% plus 12% is close to what Container Orchestration alone claims. The plan closes with the practice bank on this page and, once that feels solid, this course's mock exams.

WeekFocusHoursWhat you actually do
1🦉 Kubernetes Fundamentals — 44%~17Days 1–2: control-plane and node components — Kubernetes Architecture and What Is Kubernetes, and Why. Day 3: the object model, declarative APIs and the controller pattern — The Object Model and the API & controller pattern. Day 4: containerization and the OCI spec — the containerd tool guide. Day 5: scheduling basics — requests vs. limits, taints, affinity — in scheduling & resource management. Days 6–7: administration, namespaces and RBAC fundamentals in RBAC & admission control, then the whole domain again from the KCNA blueprint page before moving on.
2🐦 Container Orchestration — 28%~12Days 1–2: the flat Pod network model, Service types, CoreDNS and Ingress in Networking & the CNI, with the Calico and Cilium tool guides for how a CNI actually enforces it. Day 3: authentication vs. authorization, RBAC in depth, Secrets and admission control in RBAC & admission control and Security: Defense in Depth. Day 4: PersistentVolumes, PersistentVolumeClaims, StorageClasses and access modes in Storage & the CSI. Days 5–6: reading Pod status and interpreting symptoms in A Troubleshooting Methodology. Day 7: rest, or start the Domain 1–2 half of the practice bank below.
3🤖 Application Delivery (16%) + 🐘 Cloud Native Architecture (12%), then review~18Days 1–2: GitOps and the reconciliation loop in GitOps on Kubernetes, plus the Helm and Kustomize tool guides for packaging and deployment strategies. Day 3: observability's three pillars and the CNCF landscape in Observability on Kubernetes and The CNCF Project Landscape — this is also where project maturity levels and CNCF governance live, easy marks that get skipped. Days 4–5: work the full 24-question practice bank below, cold, and bucket every miss. Days 6–7: sit a full mock exam, review the glossary for anything still shaky, and run the readiness checklist before you book.
Three weeks, sized to the exam's own 44 / 28 / 28 split Week 1 · Kubernetes Fundamentals 44% of the exam Week 2 · Container Orchestration 28% Week 3 · Delivery (16%) + Architecture (12%) + practice bank & mock exam Week 1 alone is nearly as large as Weeks 2 and 3 combined — because Fundamentals alone is nearly as large as the other three domains. Bar widths are proportional to domain weight; Week 3's dashed outline marks that it also carries the review pass, not just two domains. Compress to one week if you already run clusters daily · stretch to four or five if Kubernetes is genuinely new

What "knowledge-based" changes about how you study

☺ Like you're 10: Reading a page twice feels like studying, but it barely helps. Covering the page and trying to say it back to yourself is the part that actually sticks.

A multiple-choice exam rewards a specific kind of practice, and re-reading a lesson page for the third time is not it. Three habits do most of the work, and all three are worth building into every week above, not saved for the practice bank at the end.

First, explain before you re-read. After each day's pages, close the tab and write one paragraph per concept from memory, as if explaining it to someone who's never touched Kubernetes. Anything that comes out thin or vague is a gap, and it's a gap you found for free, before it cost you a question. Second, learn pairs, not just terms. The KCNA rarely just asks "what is a readiness probe" — it asks you to tell a readiness probe apart from a liveness probe, or a Role from a ClusterRole, because that's where real understanding actually shows. Keep a running list of pairs and, for each, a single sentence that tells them apart:

readiness probe   → fails: removed from Service endpoints, container NOT restarted
liveness probe    → fails: container IS restarted

request           → what the SCHEDULER reserves when picking a node
limit             → what the KERNEL enforces at runtime (exceed memory → OOMKilled)

Role / RoleBinding               → scoped to ONE namespace
ClusterRole / ClusterRoleBinding → applies across every namespace

CI runs `kubectl apply` on merge → push-based, reconciles once per merge
GitOps agent in the cluster      → pull-based, reconciles continuously, corrects drift too

Third, read every explanation in the practice bank, including the ones you got right. Half the value in a single-best-answer question is the sentence explaining why the tempting wrong option was tempting — that sentence, not the letter you happened to pick, is the actual exam skill.

◆ Owl's one-sentence test

For any concept on the curriculum, you should be able to produce one clean sentence that states what it is and what it is commonly confused with — "a ClusterRole is a set of RBAC rules with no namespace of its own; people mix it up with a ClusterRoleBinding, which is the thing that actually grants it to someone." If you can only manage the first half of that sentence, the concept isn't finished yet, no matter how many times you've read its page.

Domain 1 — Kubernetes Fundamentals (44%) · 10 questions

☺ Like you're 10: This is nearly half the whole test, so it also gets nearly half of this practice bank — control-plane parts, workload objects, scheduling, and what a container actually is under the hood.

Ten single-best-answer questions on Core Concepts, Administration, Scheduling and Containerization. Answer each one in your head before you open its answer key — that's the whole method.

Q1 · The one component that talks to etcd

A cluster's control plane is made up of several components: kube-apiserver,
kube-scheduler, kube-controller-manager, and etcd itself.

Which of these components is the only one that reads from and writes to
etcd directly?

  A) kube-apiserver — every other component reaches etcd only through it
  B) kube-scheduler — it needs etcd to track which nodes have spare capacity
  C) kube-controller-manager — it persists reconciliation loop state
     directly to etcd
  D) kubelet — every node's kubelet keeps its own local copy of cluster
     state in etcd
Show answer & explanation

Correct: A. kube-apiserver is the only component with direct etcd access — it validates and persists every object, and it is the front door everything else goes through. (B) and (C) both invent direct etcd access for components that in fact only read and write objects via the API server, never touching etcd itself. (D) is doubly wrong: kubelet runs on nodes and talks to the API server, and it has no relationship with etcd at all, local copy or otherwise.

Q2 · Who decides which node a Pod lands on

A new Pod has just been created and has no node assigned yet
(spec.nodeName is empty).

Which control-plane component is responsible for deciding which node
that Pod should run on?

  A) kube-controller-manager
  B) kubelet
  C) kube-proxy
  D) kube-scheduler
Show answer & explanation

Correct: D. kube-scheduler watches for Pods with no assigned node, evaluates requests, taints and affinity rules, and binds the Pod to a node. (A) runs reconciliation loops for objects like Deployments and Nodes, but binding a Pod to a node is not one of them. (B) only takes over once a node has already been chosen — kubelet runs the Pod, it doesn't pick where. (C) programs Service routing rules on nodes, entirely unrelated to scheduling decisions.

Q3 · Run it once, retry on crash, don't keep it running

A team needs to run a one-off data-migration script to completion exactly
once, and wants Kubernetes to retry it automatically if the container
crashes before finishing — but not to keep the workload running
indefinitely afterward.

Which built-in workload object is designed for exactly this case?

  A) Job
  B) Deployment
  C) DaemonSet
  D) StatefulSet
Show answer & explanation

Correct: A. A Job creates Pods and tracks successful completions, retrying a failed Pod until it succeeds, and does not keep the workload alive once that completion count is reached. (B) maintains a steady desired replica count indefinitely — the opposite of "run once and stop." (C) runs one Pod per matching node continuously; it has no notion of a finite task at all. (D) manages Pods with stable identity and storage for long-running stateful applications, not a single finite script.

Q4 · One agent, on every node, automatically

An org wants exactly one instance of a log-shipping agent running on
every matching node in the cluster, including nodes added later.

Which object guarantees that?

  A) ReplicaSet with replicas set to the current node count
  B) Deployment with pod anti-affinity rules
  C) DaemonSet
  D) CronJob scheduled to run every minute
Show answer & explanation

Correct: C. A DaemonSet's controller automatically schedules one copy onto every node that matches (or all nodes, by default) — including any node added afterward, with no manual recount needed. (A) is a fixed number that doesn't grow when nodes are added and has no built-in guarantee of one-per-node placement. (B) might approximate the spread with enough tuning, but has no built-in guarantee of matching the node count exactly, and doesn't auto-adjust as nodes join. (D) runs a task to completion on a schedule — it's not a continuously running one-per-node agent at all.

Q5 · Why containers start faster than VMs

Which statement most precisely describes why containers start faster and
use fewer resources than virtual machines running the same application?

  A) Containers use a smaller base image than virtual machine disk images
  B) Containers always run on bare metal, while virtual machines always
     run inside a hypervisor on top of another operating system
  C) Containers don't use a filesystem, so there's no disk I/O to wait
     for at startup
  D) Containers share the host machine's kernel instead of each running
     their own full guest operating system
Show answer & explanation

Correct: D. Kernel sharing is the actual mechanism — no guest OS to boot, no hypervisor layer to cross for most operations. (A) is a downstream effect at best, not the reason, and isn't even reliably true. (B) overreaches with "always" — containers commonly run inside VMs too, that's not a defining trait. (C) is simply false: containers absolutely use a filesystem, typically a layered, union-style one built from image layers.

Q6 · What the OCI specifications actually standardize

The Open Container Initiative (OCI) publishes a set of open
specifications adopted across the container ecosystem.

What do the OCI specifications standardize?

  A) The image format and runtime behavior, so an image built by one
     tool runs correctly under any compliant runtime
  B) The Kubernetes API's object schema, so any client can build valid
     manifests
  C) The network protocol containers use to reach the Kubernetes API
     server
  D) The YAML syntax used by Helm charts and Kustomize overlays
Show answer & explanation

Correct: A. The OCI Image Spec and Runtime Spec define how images are packaged and layered, and how a compliant runtime must run them — the reason an image built with one tool runs correctly under containerd, CRI-O, or any other compliant runtime. (B) describes the Kubernetes API's own schema, a completely separate standard the OCI has nothing to do with. (C) names a concern the OCI specs never address. (D) is an adjacent-tool distractor — Helm and Kustomize's YAML conventions aren't OCI's concern, even though OCI registries can happen to store Helm charts.

Q7 · Requests versus limits

A container is defined with a memory request of 256Mi and a memory
limit of 512Mi.

What is the practical difference between those two numbers?

  A) They are two names for the same value, kept for backward
     compatibility with older manifests
  B) The request is enforced by the kernel at runtime; the limit is
     only used by the scheduler when picking a node
  C) The request is what the scheduler reserves when placing the Pod
     on a node; the limit is enforced by the kernel at runtime, and
     exceeding it gets the container OOMKilled
  D) Both values are advisory only — Kubernetes never actually
     enforces either one
Show answer & explanation

Correct: C. Requests drive scheduling decisions; limits are enforced at runtime by the kernel, and a container that exceeds its memory limit is killed with an OOM reason. (B) is the same two facts with the roles swapped — a classic "right idea, wrong direction" trap worth watching for on any requests-vs-limits question. (A) denies there's any real difference, which contradicts the entire point of setting both. (D) is false — limits absolutely are enforced; a Pod exceeding its memory limit does not keep running.

Q8 · What a failing liveness probe actually does

A container's liveness probe starts failing. Its readiness probe, on the
same container, is still succeeding.

What does Kubernetes do to that container as a direct result of the
failing liveness probe?

  A) Nothing — only a failing readiness probe triggers any action
  B) It restarts the container
  C) It removes the Pod from every Service's list of endpoints, but
     leaves the container running
  D) It cordons the node the Pod is running on
Show answer & explanation

Correct: B. A failing liveness probe gets the container killed and restarted by the kubelet, subject to the Pod's restart policy. (C) correctly describes what happens on a failing readiness probe instead — the right mechanism, attached to the wrong probe, which is exactly the distinction this question is testing. (A) is false; liveness failures clearly do trigger an action. (D) is unrelated — cordoning is a manual, node-level admin action, not something a per-Pod probe result ever triggers.

Q9 · A toleration doesn't pin a Pod anywhere

Node gpu-1 carries the taint dedicated=gpu:NoSchedule. A Pod is given a
matching toleration for that taint, but no node affinity or node
selector of any kind.

Where can the scheduler place that Pod?

  A) On gpu-1 or on any other node without that taint — the toleration
     only makes gpu-1 eligible, it does not require the Pod to land
     there
  B) Only on gpu-1, since it is the only node the Pod has permission
     to run on
  C) Nowhere — a toleration alone is not sufficient to schedule a
     Pod anywhere
  D) On every node in the cluster, because tolerations override all
     other scheduling constraints
Show answer & explanation

Correct: A. A toleration only cancels out one specific taint's repelling effect for that Pod — it doesn't attract or pin the Pod there. Without an explicit affinity or nodeSelector naming gpu-1, the scheduler is free to place the tolerating Pod on gpu-1 or on any ordinary untainted node. (B) overclaims exclusivity that nothing in the setup creates. (C) is false — tolerating a taint is exactly what makes scheduling onto that node possible; nothing here blocks scheduling elsewhere either. (D) overreaches — a toleration addresses one specific taint, not "all other scheduling constraints."

Q10 · What a namespace boundary actually gives you

A team creates two namespaces, team-a and team-b, in the same cluster,
each running a Deployment named worker with a different container
image.

What does the namespace boundary give them, by itself, with no other
configuration applied?

  A) Network isolation — Pods in team-a cannot reach Pods in team-b
     by default
  B) A resource-quota ceiling on how much CPU and memory each
     namespace may consume
  C) Guaranteed separate nodes — Pods in different namespaces are
     never co-scheduled on the same node
  D) A way to have two objects both named worker in the same cluster
     without a naming collision, and a scope for applying RBAC Roles
Show answer & explanation

Correct: D. Namespaces are primarily a naming and scoping mechanism — the same object name can exist in two namespaces without colliding, and a Role/RoleBinding scopes its grant to one namespace. (A) is a common misconception: by default, without a NetworkPolicy, Pod-to-Pod traffic crosses namespace boundaries freely. (B) requires a separate ResourceQuota object you must create yourself — a namespace carries no quota on its own. (C) invents a scheduling guarantee that doesn't exist; namespace has nothing to do with which node a Pod lands on.

Domain 2 — Container Orchestration (28%) · 7 questions

☺ Like you're 10: This part is how Pods talk to each other, who's allowed to do what, why a Pod gets stuck, and where data actually lives.

Seven questions on Networking, Security, Troubleshooting and Storage — the second-largest domain, and the one most likely to mix up two similarly named things on purpose.

Q11 · The default Pod networking model

In the standard Kubernetes networking model, once the CNI plugin is
installed and healthy, how does a Pod on node A reach a Pod on node B,
by default?

  A) It must go through a NodePort Service — direct Pod-to-Pod traffic
     across nodes is not possible
  B) Only Pods in the same namespace can reach each other; cross-
     namespace traffic is blocked by default
  C) Every Pod gets its own routable IP address, and Pods can reach
     each other directly across nodes without NAT
  D) Pod-to-Pod traffic across different nodes always requires
     passing through the Ingress controller
Show answer & explanation

Correct: C. The Kubernetes networking model requires flat, NAT-less Pod-to-Pod connectivity — every Pod gets a real IP, and Pods see each other's actual address regardless of which node they're on. (A) and (D) both invent a required detour through objects (a NodePort Service, an Ingress controller) that exist for external-facing traffic, not baseline Pod-to-Pod reachability. (B) describes a restriction that only exists once you deliberately add a NetworkPolicy — it isn't the default.

Q12 · Internal-only, stable DNS name, least configuration

An internal-only backend should be reachable by other Pods in the
cluster, using a stable DNS name, but should never be exposed outside
the cluster.

Which Service type fits that requirement with the least extra
configuration?

  A) LoadBalancer
  B) ClusterIP
  C) NodePort
  D) ExternalName
Show answer & explanation

Correct: B. ClusterIP, the default Service type, is cluster-internal only and gets a stable virtual IP plus a DNS name — exactly the requirement, with nothing extra to configure. (A) and (C) both open an external access path (a cloud load balancer, or a port opened on every node) — over-provisioning for something that should stay internal. (D) solves a different problem entirely: pointing a Service at an external DNS name, not exposing an internal backend.

Q13 · What an ingress-only NetworkPolicy leaves alone

A namespace has no NetworkPolicy objects at all. A single NetworkPolicy
is then applied that selects Pods with app=payments and defines one
ingress rule.

What happens to egress traffic from those app=payments Pods after that
policy is applied?

  A) Egress from those Pods is now denied by default, because defining
     any policy for a Pod switches every unlisted direction to deny
  B) Egress was already denied before the policy existed, and remains
     denied
  C) Egress is now allowed only to other Pods carrying the
     app=payments label
  D) Egress is completely unaffected — this policy has no
     policyTypes: [Egress] and no egress rules, so nothing changes
     for egress
Show answer & explanation

Correct: D. NetworkPolicy is additive and directional — a policy only restricts the directions actually listed in its policyTypes. With no Egress entry and no egress rule, egress for those Pods stays exactly as it was before: the cluster-wide default, unless something else already restricts it. (A) is the single most common misconception about NetworkPolicy — one policy touching a Pod does not silently lock down every unlisted direction, only the directions it names. (B) is false; nothing restricted egress before this policy existed. (C) invents an egress restriction that was never configured in the stem.

Q14 · Which RBAC pair reaches every namespace

A permission needs to apply across every namespace in the cluster — for
example, letting an auditor list Pods everywhere, not just in one
namespace.

Which pair of RBAC objects is used to grant a cluster-wide permission
like that?

  A) ClusterRole and ClusterRoleBinding
  B) Role and RoleBinding
  C) ClusterRole and RoleBinding
  D) Role and ClusterRoleBinding
Show answer & explanation

Correct: A. Only a ClusterRole bound with a ClusterRoleBinding grants a permission that applies across the whole cluster. (B) is namespaced end to end — a Role can never reach outside the namespace it lives in, no matter what binds it. (C) is a real, valid combination — but it scopes the ClusterRole's permissions down to the RoleBinding's own single namespace, which is exactly what makes it a strong "true, but not what was asked" distractor here, not a cluster-wide grant. (D) isn't a valid combination at all — a ClusterRoleBinding may only reference a ClusterRole, never a namespaced Role.

Q15 · Secrets, by default

A Kubernetes Secret is created from a database password using
`kubectl create secret generic`.

By default, how is that password protected once it's stored in etcd?

  A) It is encrypted with a key Kubernetes generates automatically and
     rotates every 24 hours
  B) It is hashed with SHA-256, the same way as a password in a
     user-authentication database
  C) It is only base64-encoded, not encrypted, unless the cluster has
     encryption-at-rest configured separately
  D) Secrets are held only in memory on the node that uses them and
     are never written to etcd at all
Show answer & explanation

Correct: C. Base64 is an encoding, not encryption — anyone with read access to etcd or the API can trivially decode it. Real protection at rest requires enabling an encryption provider at the API server, or reaching for an external secrets manager. (A) is a fabrication; no such automatic key rotation happens by default. (B) would make the value unreadable even to Kubernetes itself, which is not how Secrets behave — hashing is one-way and Secrets need to be recoverable. (D) is false; Secrets are stored in etcd exactly like any other object, not held only in node memory.

Q16 · What ReadWriteOnce actually restricts

A Pod running on node-a mounts a PersistentVolumeClaim requesting access
mode ReadWriteOnce. A second Pod, scheduled to node-b, later also tries
to mount the same PVC.

What happens?

  A) It works — ReadWriteOnce means the volume can be mounted
     read-write, with no restriction on how many nodes can mount it
  B) The second mount silently succeeds as read-only, ignoring the
     RWO restriction
  C) Kubernetes automatically clones the underlying volume so each
     node gets its own independent copy
  D) It fails (or blocks) — ReadWriteOnce means the volume can be
     mounted as read-write by only a single node at a time
Show answer & explanation

Correct: D. ReadWriteOnce restricts the volume to a single node mounting it read-write at a time — a second Pod on a different node cannot also mount it. (A) misstates the entire restriction the access mode exists to express. (B) invents a silent read-only fallback that RWO does not provide. (C) invents automatic cloning behavior Kubernetes does not perform on its own.

Q17 · ImagePullBackOff, precisely

`kubectl get pods` shows a Pod stuck in ImagePullBackOff.

What does that status most directly indicate?

  A) The container started, then exited repeatedly, and kubelet is now
     backing off before the next restart attempt
  B) The kubelet cannot pull the specified container image — commonly
     a wrong tag, a private registry with no pull secret, or a typo
     in the image name
  C) The container exceeded its memory limit and was killed by the
     kernel
  D) The Pod is waiting for the scheduler to find a node with enough
     free resources
Show answer & explanation

Correct: B. ImagePullBackOff is specifically an image-retrieval failure — the image name, tag, or registry credentials are the usual culprits. (A) describes CrashLoopBackOff instead, a distinct and easily confused status covering a container that starts and exits repeatedly. (C) describes OOMKilled, a container-terminated reason, unrelated to pulling an image. (D) describes an unschedulable Pod stuck in the Pending phase — a Pod that can't even get a node assigned wouldn't be showing a container-level status like ImagePullBackOff at all.

Domain 3 — Cloud Native Application Delivery (16%) · 4 questions

☺ Like you're 10: This part is about how new code actually gets into the cluster, and how you find out why it's stuck once it's there.

Four questions on Application Delivery and Debugging — smaller domain, but a favorite spot for the "sounds like GitOps but isn't quite" trap.

Q18 · What actually makes a setup "GitOps"

Team A's pipeline runs `kubectl apply -f ./manifests/` against the
production cluster from CI, once per merge to main. Team B instead runs
an agent inside the cluster that continuously compares live state
against the same Git repository and reconciles any difference,
including changes made outside of a merge.

Which team's setup is doing GitOps, in the strict sense the term is
normally used?

  A) Team A, because both teams ultimately apply the same
     Git-stored manifests to the cluster
  B) Both, equally — GitOps just means storing your manifests in a
     Git repository
  C) Team B, because the defining trait of GitOps is an in-cluster
     agent that pulls and continuously reconciles, not merely that
     manifests happen to live in Git
  D) Neither — GitOps requires a human to manually review every diff
     before it is applied
Show answer & explanation

Correct: C. Storing manifests in Git is necessary but not sufficient — the defining mechanism is a pull-based, continuously reconciling in-cluster controller, which is exactly what catches a hand-made change days after it happens. (A) and (B) both fall for the same oversimplification: "manifests live in Git" is not the same claim as "GitOps." Team A's push-based, once-per-merge apply is common CI/CD, but a manual change would silently survive until the next merge. (D) invents a manual-review requirement that isn't part of the definition; some teams choose that as policy, but it isn't what makes something GitOps.

Q19 · Small traffic slice, watched, then increased

A team wants to send 5% of production traffic to a new application
version, watch its error rate for twenty minutes, and only then
gradually increase that percentage — keeping the option to send traffic
back to 0% instantly if something looks wrong.

Which deployment strategy are they describing?

  A) Rolling update
  B) Canary deployment
  C) Blue/green deployment
  D) Recreate
Show answer & explanation

Correct: B. Canary describes exactly this: a small, deliberately controlled percentage of traffic routed to the new version, observed, then gradually increased. (A) replaces old Pods with new ones incrementally, but without percentage-based traffic splitting or an observation window tied to a specific traffic share. (C) keeps two full parallel environments and switches all traffic at once — no gradual ramp at all. (D) simply terminates the old Pods before starting new ones, with a gap and zero traffic control.

Q20 · Templating charts vs. templating-free overlays

One packaging tool for Kubernetes manifests uses parameterized templates
and versioned, installable packages called charts. Another applies
patches on top of plain, un-templated YAML through a layered
base-and-overlay model, with no templating language involved.

Which tool is the second one describing?

  A) Helm
  B) Argo CD
  C) containerd
  D) Kustomize
Show answer & explanation

Correct: D. Kustomize's entire model is templating-free — it patches real, valid YAML through overlays layered on a base, and ships natively inside kubectl. (A) is the first tool the stem describes — templated charts with a package and release model — offered here as the tempting "I recognized a packaging tool" pick for the wrong description. (B) is a GitOps delivery controller, not a manifest-packaging tool at all. (C) is a container runtime, unrelated to manifest packaging entirely.

Q21 · The container never logs anything — now what

A Pod's container keeps failing to start. `kubectl logs ` returns
nothing useful because the container never gets far enough to log
anything.

Which command is most likely to show the actual reason the container
isn't starting?

  A) kubectl describe pod , to read its Events
  B) kubectl rollout undo, to revert to the last known-good version
  C) kubectl top pod , to check its live CPU and memory usage
  D) kubectl scale deployment  --replicas=0, to stop the
     crash loop
Show answer & explanation

Correct: A. describe surfaces the Events feed — image pull failures, scheduling failures, failed probes, volume mount errors — even when the container itself never manages to log anything. (B) is a fix for a bad rollout, not a diagnostic step, and it rolls back before you even know what's wrong. (C) only reports live resource usage of a running container, which is useless for one that never starts. (D) stops the symptom but destroys the very Pod you needed to inspect, and gives back no diagnostic information at all.

Domain 4 — Cloud Native Architecture (12%) · 3 questions

☺ Like you're 10: Smallest slice of the test, but it's not just observability — a chunk of it is understanding the CNCF itself, and that part rarely changes.

Three questions on Observability, Cloud Native Ecosystem and Principles, and Cloud Native Community and Collaboration — the domain candidates most often skim past because it feels like background reading rather than a testable fact.

Q22 · The fourth golden signal

The four golden signals — a widely used starting point for what to
monitor on any user-facing system — are latency, traffic, errors, and
one more.

Which is the fourth?

  A) Availability
  B) Saturation
  C) Cost
  D) Throughput
Show answer & explanation

Correct: B. The four golden signals are latency, traffic, errors, and saturation — how "full" a resource or service is. (A) and (D) are both real, related observability ideas — throughput especially sounds like a rewording of traffic — but neither is the specific fourth signal in this named framework. (C) is a real FinOps concern with nothing to do with this particular list.

Q23 · The order of CNCF project maturity levels

A CNCF-hosted project is described as having demonstrated broad
adoption, a documented governance process, and multiple independent
production users, and has now passed a formal TOC (Technical Oversight
Committee) review to move up a level.

What is the correct order of the three CNCF project maturity levels,
from earliest to most mature?

  A) Incubating → Sandbox → Graduated
  B) Sandbox → Incubating → Graduated
  C) Graduated → Incubating → Sandbox
  D) Proposed → Sandbox → Stable
Show answer & explanation

Correct: B. The CNCF's three maturity levels, in order, are Sandbox (the earliest, minimal bar to entry), Incubating (adoption and process requirements), and Graduated (the highest bar — broad adoption, strong governance, a security audit, and more). (A) and (C) both misorder the same three real levels. (D) invents level names — "Proposed" and "Stable" are not the CNCF's actual terminology.

Q24 · The signal built to show one request's path

A request is slow, and the team wants to see exactly which of the seven
microservices it passed through added the most latency, in what order.

Which observability signal is purpose-built to answer that question?

  A) Metrics — an aggregated number like p99 latency over the last
     five minutes
  B) Logs — a discrete, timestamped record of an event from one
     service
  C) Traces — the path of a single request as it crosses multiple
     services, with timing for each hop
  D) Events — a Kubernetes object recording a state change, such as
     a Pod being scheduled
Show answer & explanation

Correct: C. Distributed tracing exists specifically to show one request's full path across services with per-hop timing — precisely the "which service, in what order" question in the stem. (A) is an aggregated number over a time window — good for spotting that latency rose, useless for isolating which single request or service caused it. (B) is a discrete per-service record; correlating logs across seven services into one request's path is possible but is not what logs are purpose-built for, unlike a trace's request-scoped model. (D) records cluster state changes like scheduling — an infrastructure-level concept, not an application-request observability signal at all.

Resources: official, this course, and how the bank fits your plan

☺ Like you're 10: Three different kinds of resource do three different jobs — don't use a quiz for the thing only a first read can teach you.

Sequence matters more than volume. Read a domain's pages first, explain it from memory, then work its questions in the bank above — using the bank to learn material for the first time just teaches you the shape of these specific 24 questions, not the underlying idea.

ResourceUse it for
The published curriculum — github.com/cncf/curriculumThe exact competency wording, and confirming the version matches what you're studying.
This course's KCNA blueprint pageOne page with all four domains, matched directly to the curriculum's own weights and competency wording.
The 24-question bank aboveRetrieval practice once you've read a domain — not a substitute for reading it.
This course's Mock Exam · Set 1 and Set 2A full, weighted, whole-paper rehearsal — save these for the end of week 3, once the bank stops surprising you.
Shared revision kit — Flashcards, Self-Check Quiz, GlossaryFacts and terms across the whole course, not just KCNA-specific ones — good for a mixed warm-up between domains.
Second opinions on the same exam — Platform Engineering's KCNA page, DevOps's KCNA pageThe same four domains explained from a different angle, plus a fuller walk-through of the associate-vs-performance-exam landscape.
The KCSA Study Plan & Practice Bank and the Golden Astronaut courseWhere to go next if KCNA is one stop on the way to the full Kubestronaut or Golden Kubestronaut ladder.
◆ Key idea

Do not spend the mock exam early. It's the only resource here that reproduces the actual shape of exam day — all four domains, weighted, in one sitting — and it's only informative while it's still unfamiliar. The bank above is for building; the mock is for finding out whether it worked.

Readiness checkpoint — are you actually ready to book

☺ Like you're 10: Don't book the exam because the calendar says week three — book it once you can actually explain these things out loud, without checking a page first.

Booking on a date rather than on readiness is the most common way people waste the exam fee on a knowledge-based paper — there's no lab to fall back on, only whether the concepts are actually solid. Before you pay, you should be able to answer "yes" to all of these without hesitating:

✎ The readiness checklist

1. Can you name every control-plane and node component and say, in one sentence each, what job it does? 2. Given a Pod status like CrashLoopBackOff, ImagePullBackOff, or OOMKilled, can you say what each one specifically means, without confusing them? 3. Can you explain the difference between a Role and a ClusterRole, and between request and limit, in one sentence each? 4. Can you explain why kubectl apply run from CI is not the same thing as GitOps? 5. Do you know the four CNCF project maturity levels, in order, and roughly what each requires? 6. Have you scored comfortably above your target on the full 24-question bank above, on a cold re-attempt, not the first time you saw the questions? 7. Have you sat at least one full mock exam and reviewed every miss, not just the score?

If more than one or two of those still feel shaky, that's not a reason to panic — it's a precise list of what to revisit before you spend the fee. Loop back to the matching domain above, not to the whole plan.

Exam logistics — verify these yourself before you pay

☺ Like you're 10: It's an online test you take from home with someone watching through your webcam. The exact price and length change over time, so always check the official page before you pay.

The details below are what the Linux Foundation and CNCF publish, and what candidates consistently report. They're here to help you plan a calendar, not to be quoted back at anyone.

ItemWhat is generally published
FormatOnline, remote-proctored, knowledge-based, multiple-choice — no cluster, no terminal, no performance tasks
Duration90 minutes — the Linux Foundation's Multiple Choice Exam FAQ states this for its multiple-choice exams generally, with the CNPA named as the one exception at 120 minutes
Passing score75% — the same FAQ states plainly that a score of 75% or above is required to pass a Linux Foundation multiple-choice exam
Question countNot published on the official pages; commonly reported as around 60 questions — treat that as a study convention, not a promise
Validity2 years from the date you pass
Eligibility windowCommonly 12 months to sit the exam after purchasing it — a different clock from certification validity, see the note below
RetakeRegistration has historically included one free retake
PriceAround USD $250 list; bundles and regional pricing are common
PrerequisitesNone — and KCNA is not required before sitting the CKA, CKAD, or CKS
⌁ Note · two different clocks

Don't confuse the eligibility window — how long you have to sit the exam after buying it — with the certification validity, how long the credential lasts after you pass. Both are on the official page.

⚠ Verify officially before you book

This page is an independent, unofficial study resource — not affiliated with the CNCF or the Linux Foundation. Price, duration, question count, pass mark, retake policy, eligibility window, and certification validity all change over time. Confirm current details on the official Linux Foundation KCNA page and the CNCF certification page before you pay for anything, and read the Candidate Handbook in your LF portal. The curriculum itself is published openly at github.com/cncf/curriculum. See Kubernetes Certifications for this course's full ladder, and the Golden Astronaut course if KCNA is one stop on the way to the full Kubestronaut or Golden Kubestronaut set.

🎬 At the Pod Squad
🐿️

Nutty: Three weeks, thirteen competencies, twenty-four practice questions, all filed by domain. I'm rather proud of this schedule.

👺

Gizmo: Or just skim a dump of leaked questions the night before. It's multiple choice — how hard can four options be? 🤑

🐢

Timmy: Hard enough that three of those four are built on purpose to look right to someone who almost gets it. That's not a shortcut, Gizmo, that's a trap wearing a shortcut's coat.

🦊

Foxy: Fine — but Kubernetes Fundamentals is basically "stuff I already half-know." Do I really need a full week on it?

🦉

Owl: Half-knowing a control-plane component and being able to say, cleanly, what it does and doesn't do are different states, Foxy. And it's 44% of the paper — the domain candidates most over-rate themselves in is exactly this one.

🐘

Ellie: I got caught on the Role-versus-ClusterRole question the first time through. Knew both terms cold. Still picked the wrong pair.

🐿️

Nutty: Which is exactly why we read every explanation, not just the correct letter. The letter tells you what. The explanation tells you why the other three doors were built.

🐢 Timmy's checkpoint

1. What are the four KCNA domains and their weights, and what do they sum to? 2. Why does this plan give Kubernetes Fundamentals nearly half of week one, rather than splitting three weeks evenly across four domains? 3. Name the difference between what a readiness probe failure does versus a liveness probe failure. 4. Why is a CI pipeline running kubectl apply on every merge not the same thing as GitOps, even though both keep manifests in Git? 5. Which RBAC pair is required to grant a permission across every namespace in a cluster, and why doesn't Role plus RoleBinding work? 6. What's the published passing score for a Linux Foundation multiple-choice exam, and where does that figure come from? 7. Give two concrete checks you should be able to pass before booking the exam.

Check your answers
  1. Kubernetes Fundamentals 44%; Container Orchestration 28%; Cloud Native Application Delivery 16%; Cloud Native Architecture 12% — summing to exactly 100%.
  2. Because it's nearly half the exam on its own — larger than the other three domains combined minus one point — and it's the domain candidates most often over-rate themselves in, since every sentence in it sounds familiar even when a specific distinction (Job vs. CronJob, request vs. limit) isn't actually solid.
  3. A failing readiness probe removes the Pod from Service endpoints but leaves the container running, un-restarted; a failing liveness probe gets the container killed and restarted by the kubelet.
  4. Because GitOps' defining trait is a pull-based, continuously reconciling in-cluster agent, not merely that manifests live in Git. A push-based CI job only reconciles once per merge, so a hand-made change made outside a merge (a manual kubectl scale, for example) would silently survive until the next one — exactly the drift a true GitOps controller catches continuously instead.
  5. ClusterRole and ClusterRoleBinding. A Role is namespaced no matter what binds it, so Role plus RoleBinding can never reach outside its own namespace — and a ClusterRoleBinding can't even reference a Role at all, only a ClusterRole.
  6. 75% — stated directly in the Linux Foundation's Multiple Choice Exam FAQ as the passing score for its multiple-choice exams generally, KCNA included.
  7. Any two from the readiness checklist — e.g. explaining every control-plane component in one sentence each without checking a page first; scoring comfortably above target on a cold re-attempt of the 24-question bank above; having sat and reviewed at least one full mock exam.