Free practice · No sign-up required

Certified Kubernetes Administrator free practice test

15 questions with answer explanations. Choose an answer below to begin.

Question 1 of 15

Which control-plane component runs built-in reconciliation controllers, such as the Job controller, that move observed cluster state toward the state declared in API objects?

Show hint

Separate reconciliation, storage, scheduling, and node execution.

0/15 answered · Bookmark questions to review later. Focus the practice area to use keys 1–9 and Enter.

Learn by doing

Put your answers into practice

Use official documentation and hands-on labs to work through topics you missed.

Explore all study resources →
Kubernetes application examples

Application examples from the Kubernetes project for practicing manifests and application behavior in a cluster.

Try it: Use a disposable cluster. Read a simple application's manifests, predict which Pods its Service selects, then change a label and use kubectl to diagnose the resulting connectivity problem.

Source is free. A local cluster uses your computer; hosted clusters may incur charges.

Kubernetes official tutorials

Guided tutorials for learning Kubernetes behavior and building practical skills beyond multiple-choice recall.

Try it: Complete a basic application tutorial. Repeat the task without the walkthrough, then explain the difference between declared configuration and observed cluster state.

Documentation is free. Your chosen cluster environment may have costs.

All questions and explanations

Prefer to read at your own pace? Work through each question below, then open its answer to check your reasoning. You can link directly to a question or print this reference.

  1. Topic: Controllers

    Which control-plane component runs built-in reconciliation controllers, such as the Job controller, that move observed cluster state toward the state declared in API objects?

    1. etcd

    2. kubelet

    3. kube-scheduler

    4. kube-controller-manager

    Show answer and explanation

    Correct answer

    • kube-controller-manager

    kube-controller-manager runs built-in controllers. They observe and update Kubernetes objects through the API server. etcd stores cluster data; kube-scheduler places unscheduled Pods; kubelet manages containers on its node. Controllers do not normally watch etcd directly.

    Controllers
  2. Topic: Assigning Pods to Nodes

    A new Pod must be scheduled only on nodes with the label disktype=ssd. Which node-affinity rule makes that a mandatory scheduling condition?

    1. requiredDuringSchedulingIgnoredDuringExecution with a disktype=ssd match expression

    2. preferredDuringSchedulingIgnoredDuringExecution with a disktype=ssd match expression

    3. A toleration for disktype=ssd without any node-affinity rule

    4. A preferred Pod anti-affinity rule

    Show answer and explanation

    Correct answer

    • requiredDuringSchedulingIgnoredDuringExecution with a disktype=ssd match expression

    Required node affinity excludes nodes that do not match at scheduling time. Preferred affinity is only a preference. A toleration permits placement on a matching tainted node but does not require it. Pod anti-affinity considers other Pods. IgnoredDuringExecution means a later label change does not itself evict an already running Pod.

    Assigning Pods to Nodes
  3. Topic: kubectl config current-context

    Which command prints only the name of the currently selected kubeconfig context?

    1. kubectl config current-context

    2. kubectl config get-contexts

    3. kubectl config view

    4. kubectl cluster-info

    Show answer and explanation

    Correct answer

    • kubectl config current-context

    kubectl config current-context prints the selected context name. get-contexts lists contexts, config view displays kubeconfig data, and cluster-info displays cluster endpoint information. Checking the context helps confirm which cluster a later command will target.

    kubectl config current-context
  4. Topic: Service

    You create a normal, non-headless Service and omit spec.type. What does the default ClusterIP type provide?

    1. A port on every node for external access

    2. An automatically provisioned public cloud load balancer

    3. A virtual IP within the cluster network for the Service

    4. A DNS alias configured through spec.externalName

    Show answer and explanation

    Correct answer

    • A virtual IP within the cluster network for the Service

    A normal ClusterIP Service receives a cluster-internal virtual IP. It does not itself provision a NodePort or external load balancer. ExternalName instead returns a DNS alias. Other mechanisms, such as an Ingress or port-forwarding, can provide access to an application behind a ClusterIP Service.

    Service
  5. Topic: Persistent Volumes

    An application author wants to request 5 GiB of persistent storage with a supported access mode, without defining the underlying storage implementation. Which resource represents that request?

    1. VolumeAttachment

    2. StorageClass

    3. PersistentVolumeClaim

    4. PersistentVolume

    Show answer and explanation

    Correct answer

    • PersistentVolumeClaim

    A PersistentVolumeClaim specifies the requested storage amount and access modes. It can bind to a suitable PersistentVolume. A StorageClass describes provisioning policy; a VolumeAttachment tracks a volume attachment. A PVC request does not by itself guarantee that matching storage is available.

    Persistent Volumes
  6. Topic: Resource Management for Pods and Containers

    In a Linux container entry under spec.containers, which setting caps that container at half a CPU?

    1. resources.requests.cpu: 500m

    2. resources.limits.memory: 500Mi

    3. resources.limits.cpu: 500m

    4. resources.requests.cpu: 500

    Show answer and explanation

    Correct answer

    • resources.limits.cpu: 500m

    A CPU limit of 500m means half of one CPU and is enforced through CPU throttling. A request influences scheduling and CPU allocation; it is not a usage cap. Memory limits control memory, and a CPU request of 500 means 500 CPUs, not 500 millicores.

    Resource Management for Pods and Containers
  7. Topic: kubectl get

    Which command lists Event objects in the current namespace sorted by their metadata.creationTimestamp?

    1. kubectl get events --sort-by='.metadata.creationTimestamp'

    2. kubectl describe events

    3. kubectl logs events

    4. kubectl events --order=time

    Show answer and explanation

    Correct answer

    • kubectl get events --sort-by='.metadata.creationTimestamp'

    kubectl get supports --sort-by with a JSONPath field. The selected command orders the Event objects by object creation time, which is not necessarily the time of their latest repeated occurrence. kubectl events is a valid command, but --order=time is not its documented sorting option. describe is not the requested sorted list.

    kubectl get
  8. Topic: Kubernetes Components

    In a cluster that uses kube-proxy for Service networking, what is its main responsibility?

    1. Assigning pending Pods to nodes

    2. Persisting API objects in etcd

    3. Maintaining node network rules that implement Service traffic forwarding

    4. Starting and restarting application containers

    Show answer and explanation

    Correct answer

    • Maintaining node network rules that implement Service traffic forwarding

    kube-proxy programs node network rules for Services. kube-scheduler handles placement, etcd persists data, and the kubelet works with the runtime to run containers. Some networking implementations replace kube-proxy, so it is not a universal requirement for every cluster.

    Kubernetes Components
  9. Topic: Configure Liveness, Readiness and Startup Probes

    A container serves a health endpoint at /ready on port 8080. Which handler should be placed under readinessProbe to check that HTTP endpoint?

    1. tcpSocket with port 8080

    2. httpGet with path /ready and port 8080

    3. exec with command ["true"]

    4. grpc with port 8080

    Show answer and explanation

    Correct answer

    • httpGet with path /ready and port 8080

    httpGet checks the specified HTTP path and port. tcpSocket checks whether a TCP connection can be established; exec runs a command; grpc uses the gRPC health protocol. A failed readiness probe marks the Pod unready for normal Service traffic and does not itself restart the container.

    Configure Liveness, Readiness and Startup Probes
  10. Question 10

    Link to question

    Topic: Deployments

    A Deployment should replace old application replicas gradually while keeping available replicas during an update. Which built-in Deployment strategy supports that behavior?

    1. Recreate

    2. RollingUpdate

    3. OnDelete

    4. Immediate

    Show answer and explanation

    Correct answer

    • RollingUpdate

    RollingUpdate changes replicas incrementally, using maxUnavailable and maxSurge to control the rollout. Recreate removes old replicas before replacement. OnDelete is not a Deployment strategy. Application compatibility, readiness checks, capacity, and graceful shutdown still determine user-visible availability; RollingUpdate alone does not guarantee zero downtime.

    Deployments
  11. Question 11

    Link to question

    Topic: Configure a Security Context

    You want one container in a multi-container Pod to use readOnlyRootFilesystem: true. Where should that setting be configured?

    1. In that container's securityContext

    2. In the Pod's metadata.annotations as readOnlyRootFilesystem

    3. In the container's resources.limits

    4. In the Pod's spec.nodeSelector

    Show answer and explanation

    Correct answer

    • In that container's securityContext

    The container securityContext contains readOnlyRootFilesystem and other container-level security settings. An annotation, resource limit, or node selector does not enable this setting. Mount separate writable volumes where the application needs to write; a read-only root filesystem does not make every mounted volume read-only.

    Configure a Security Context
  12. Question 12

    Link to question

    Topic: Namespaces

    Two teams want to create Deployments with the same name in one cluster. What does placing them in different Namespaces provide?

    1. Separate name scopes for namespaced resources

    2. Automatic denial of all network traffic between the teams

    3. A separate control plane for each team

    4. Separate physical worker nodes by default

    Show answer and explanation

    Correct answer

    • Separate name scopes for namespaced resources

    Namespaces let namespaced resources share a name when they are in different namespaces. They do not automatically provide network isolation, separate nodes, or separate control planes. Use appropriate authorization and network controls where isolation is required; some resources, such as Nodes, are cluster-scoped.

    Namespaces
  13. Question 13

    Link to question

    Topic: Troubleshooting Clusters

    Which command displays the conditions, addresses, and allocated resource requests and limits for the specific node worker-1?

    1. kubectl node describe worker-1

    2. kubectl describe node worker-1

    3. kubectl get node-info worker-1

    4. kubectl inspect node worker-1

    Show answer and explanation

    Correct answer

    • kubectl describe node worker-1

    kubectl describe node worker-1 selects that node and shows detailed status and allocation information. The name is needed to target one node. Allocated requests and limits are not a measurement of live CPU or memory consumption. The other commands are not valid kubectl command forms for this task.

    Troubleshooting Clusters
  14. Question 14

    Link to question

    Topic: kubectl logs

    The api container in Pod web has restarted after a crash. Which command requests the logs of its previous container instance, if those logs are available?

    1. kubectl logs web -c api --previous

    2. kubectl describe pod web

    3. kubectl logs web -c api

    4. kubectl get pod web -o yaml

    Show answer and explanation

    Correct answer

    • kubectl logs web -c api --previous

    The --previous flag requests the preceding instance's logs, while -c selects the container. Without --previous, logs targets the current instance. describe and get help inspect state but do not return those application logs. Previous logs depend on their availability and are not a durable log archive.

    kubectl logs
  15. Question 15

    Link to question

    Topic: StorageObjectInUseProtection admission plugin

    Which admission plugin adds protection finalizers to newly created PersistentVolume and PersistentVolumeClaim objects?

    1. NodeRestriction

    2. ResourceQuota

    3. StorageObjectInUseProtection

    4. PersistentVolumeClaimResize

    Show answer and explanation

    Correct answer

    • StorageObjectInUseProtection

    StorageObjectInUseProtection adds PV/PVC protection finalizers. Protection controllers later remove them when protection is no longer needed, allowing deletion to finish. NodeRestriction limits node identity operations; ResourceQuota enforces quotas; PersistentVolumeClaimResize concerns resize admission. Adding finalizers is different from provisioning storage.

    StorageObjectInUseProtection admission plugin

Read all flashcards

Recall the answer before opening each card.

How do built-in controllers communicate with cluster state?

They reconcile API objects through the API server; kube-controller-manager runs built-in control loops.

Source documentation
Which node-affinity rule is mandatory during scheduling?

requiredDuringSchedulingIgnoredDuringExecution. Later node-label changes do not themselves evict the Pod.

Source documentation
How do you print the active kubeconfig context name?

kubectl config current-context

Source documentation
What does a normal ClusterIP Service provide?

A cluster-internal virtual IP. External access requires another mechanism; a headless Service is a separate case.

Source documentation
Which object requests a storage size and access modes?

A PersistentVolumeClaim; it needs suitable backing storage to become bound.

Source documentation
How do you cap a Linux container at half a CPU?

Set resources.limits.cpu: 500m in its container specification.

Source documentation
How do you sort Event objects by object creation time?

kubectl get events --sort-by='.metadata.creationTimestamp'. This does not sort by the latest repeated occurrence.

Source documentation
What does kube-proxy implement?

Node network rules for Services. Some cluster networking implementations replace it.

Source documentation
Which readiness handler checks an HTTP path?

httpGet with the path and port. Readiness failure does not itself restart the container.

Source documentation
Does RollingUpdate guarantee zero downtime?

No. It controls incremental replacement; readiness, capacity, application compatibility, and shutdown behavior also matter.

Source documentation
Where do you set readOnlyRootFilesystem for one container?

In that container's securityContext. Mounted volumes have their own write permissions.

Source documentation
What do Namespaces provide by themselves?

Name scoping for namespaced resources, not automatic network or node isolation.

Source documentation
How do you inspect the specific node worker-1?

kubectl describe node worker-1. Allocated requests and limits are not live usage measurements.

Source documentation
How do you retrieve the api container's previous logs in Pod web?

kubectl logs web -c api --previous, if the previous instance's logs are still available.

Source documentation
What does StorageObjectInUseProtection add?

Protection finalizers on PVs and PVCs; protection controllers remove them when the objects no longer need protection.

Source documentation
Does a toleration force placement on a matching tainted node?

No. It permits placement; use suitable required node affinity to restrict which nodes are eligible.

Source documentation
How does Recreate differ from RollingUpdate?

Recreate removes old Deployment replicas before creating replacements; RollingUpdate allows incremental overlap.

Source documentation
How does a liveness probe differ from readiness?

Repeated liveness failure triggers a container restart according to the probe behavior; readiness determines eligibility for normal Service traffic.

Source documentation
What does a StorageClass describe?

Storage provisioning policy, including a provisioner and parameters.

Source documentation
How do PersistentVolumes and claims differ?

A PV represents cluster storage; a PVC requests it. Their lifecycles are separate from individual Pods.

Source documentation
Active recall deck

Practice Certified Kubernetes Administrator with real flashcards

Read the prompt, commit to an answer, then flip the card. Move through the deck at your own pace and repeat any topic that does not come back quickly.

20 free cards

Card 1 of 20

1 reviewed this session

Connect the concepts

Your Certified Kubernetes Administrator study mind map

Open a branch to connect a topic with its practice questions and explanations. Use the map to choose your next review topic.

Certified Kubernetes Administrator15 questions in this practice set
Controllers(1)
Assigning Pods to Nodes(1)
kubectl config current-context(1)
Service(1)
Persistent Volumes(1)
Resource Management for Pods and Containers(1)
kubectl get(1)
Kubernetes Components(1)
Configure Liveness, Readiness and Startup Probes(1)
Deployments(1)
Configure a Security Context(1)
Namespaces(1)
More practice connections(3)
Exam-focused analysis

What this CKA practice set measures

This is an analysis of the practice bank, not a claim about the vendor's live exam blueprint. Use it to identify the knowledge, judgment, and recall patterns exercised here, then verify your coverage against the current official exam guide.

AI-assisted source review completed on 20 September 2026 for all 15 questions and 20 recall cards. This is a focused concept quiz, not an official exam or a simulation of CKA hands-on tasks. Commands were checked against documentation, not run in a cluster; verify your exam's current objectives and software version.

Follow state through the API

Controllers reconcile declared and observed state using the Kubernetes API. Separate that work from persistence in etcd, placement by the scheduler, and container execution managed by the kubelet.

  • Explain which component acts when a desired replica is missing.
  • Do not describe kube-proxy as a control-plane controller; it implements Service networking on nodes when used.

Make scheduling and update assumptions explicit

Required node affinity is a scheduling restriction; preferred affinity is a preference. CPU requests and CPU limits solve different problems. During an update, the strategy alone cannot establish application availability.

  • Compare a toleration with a required node-affinity rule.
  • For a rollout, inspect readiness, capacity, maxUnavailable, and maxSurge.
  • Translate 500m into half of one CPU before choosing a resource value.

Separate network reachability from storage lifecycle

A ClusterIP is an internal Service address. A Namespace supplies name scope, not automatic security isolation. A PVC is a storage request; PV/PVC protection finalizers delay deletion while the relevant protection condition holds.

  • Trace the client, Service, and selected Pod for a request.
  • Distinguish a storage request, provisioner policy, and supplied volume.
  • Review authorization and network controls separately from namespace organization.

Choose a command that returns the evidence you need

Check your kubeconfig context before cluster work. Use the node name when targeting one node, the container name when selecting one container, and --previous when requesting a previous container instance. Event creation time and the latest repeated occurrence are different timestamps.

  • Use describe for status and events; use logs for application output.
  • Do not mistake allocated requests and limits for measured live utilization.
  • Record the observation that supports your diagnosis before changing configuration.

Study workflow

Turn one CKA attempt into a study plan

  1. 1

    Check the target

    Run kubectl config current-context and verify that it points to your disposable study cluster.

  2. 2

    Make a prediction

    Choose one missed concept and write the command output or behavior you expect before consulting its linked documentation.

  3. 3

    Practice and inspect

    Reproduce a small task in your lab, collect the relevant status or logs, and explain any difference from your prediction.

  4. 4

    Record the boundary

    Write down one condition that would change the answer, such as an optional scheduling preference, missing log history, or a headless Service.

  5. 5

    Retest after a break

    Use fresh questions and repeat the practical task without a walkthrough. A score on this short concept set is not a pass prediction.

FAQ

Questions about this CKA practice page

Clear boundaries on what the bank covers, how to use it, and where official vendor information still matters.

Does this quiz cover the full CKA exam?+

No. It is a short multiple-choice concept review. Use the certification owner's current objectives and hands-on cluster practice to plan complete preparation.

Why are explanations linked to official documentation?+

The source links let you verify behavior and read the conditions a short question leaves out. This set received an AI-assisted documentation review, not a claimed human expert sign-off.

Does a high score mean I can perform the tasks?+

No. Recognition and command-line execution are different skills. Reproduce the relevant tasks in a lab and verify the outcome without referring to the answer choices.

How should I use the recall cards?+

Answer from memory, then explain when the statement applies. Open the card's official source when a distinction is unclear.

What should I do if my cluster behaves differently?+

Check your context, Kubernetes version, networking and storage implementations, and the current official documentation. Report an apparent content error through Certbie's contact page.

Sources attached to this practice bank

Keep studying

Build the next review session

Browse another free bank or use the study strategy guide to turn your misses into spaced review.