50 Free CKA Practice Questions — Certified Kubernetes Administrator
Preparing for the CKA certification? These 50 free practice questions cover all CKA domains.
Note: The CKA exam is 100% hands-on (terminal-based). These questions test the conceptual knowledge needed to succeed.
Domain 1: Cluster Architecture, Installation & Configuration (Questions 1–15)
Question 1
Which Kubernetes component is the front-end for the control plane?
a) kubelet
b) kube-apiserver
c) kube-proxy
d) etcd
Show Answer
Answer: b) kube-apiserver
Explanation: The API server is the front-end of the Kubernetes control plane. It exposes the Kubernetes API and handles all REST requests, processing them before storing state in etcd.
Question 2
Which component is responsible for scheduling pods to nodes?
a) kube-controller-manager
b) kube-scheduler
c) kubelet
d) kube-proxy
Show Answer
Answer: b) kube-scheduler
Explanation: The scheduler watches for newly created pods with no assigned node and selects the best node for each pod based on resource requirements, policies, and constraints.
Question 3
What is the role of etcd in a Kubernetes cluster?
a) Container runtime
b) Distributed key-value store for cluster state
c) Network proxy
d) Node monitoring
Show Answer
Answer: b) Distributed key-value store for cluster state
Explanation: etcd is a consistent, distributed key-value store that stores all cluster data (state, configuration, secrets). It's the single source of truth for the cluster.
Question 4
Which component runs on each worker node to manage pods?
a) kube-apiserver
b) kube-scheduler
c) kubelet
d) kube-controller-manager
Show Answer
Answer: c) kubelet
Explanation: The kubelet runs on every node (worker and master) and ensures containers are running in pods as desired. It communicates with the API server to receive pod specifications.
Question 5
What is the purpose of kube-proxy?
a) Managing container runtime
b) Maintaining network rules on nodes for service connectivity
c) Scheduling pods
d) Storing cluster state
Show Answer
Answer: b) Maintaining network rules on nodes for service connectivity
Explanation: kube-proxy runs on each node and maintains network rules that allow communication to pods from network sessions inside or outside the cluster.
Question 6
What is the default container runtime interface for Kubernetes?
a) Docker
b) containerd
c) rkt
d) CRI-O
Show Answer
Answer: b) containerd
Explanation: containerd is the default container runtime interface (CRI) for Kubernetes since Docker was deprecated. It's an industry-standard container runtime that focuses on simplicity and security.
Question 7
Which command initializes a Kubernetes control plane node?
a) kubeadm init
b) kubeadm join
c) kubeadm config
d) kubeadm upgrade
Show Answer
Answer: a) kubeadm init
Explanation: kubeadm init initializes a Kubernetes control plane node. kubeadm join adds worker nodes to the cluster. kubeadm upgrade upgrades the cluster version.
Question 8
What is the purpose of a kubeconfig file?
a) Storing container images
b) Configuring access to Kubernetes clusters (clusters, contexts, users)
c) Configuring pod networking
d) Storing application configurations
Show Answer
Answer: b) Configuring access to Kubernetes clusters (clusters, contexts, users)
Explanation: The kubeconfig file (usually ~/.kube/config) defines cluster access configuration, including cluster endpoints, user credentials, and contexts for switching between clusters.
Question 9
What component is responsible for maintaining the desired state of the cluster?
a) kube-scheduler
b) kube-controller-manager
c) kube-apiserver
d) kubelet
Show Answer
Answer: b) kube-controller-manager
Explanation: The controller manager runs controller processes (Node Controller, Replication Controller, Endpoints Controller, etc.) that continuously monitor and reconcile the cluster's actual state with the desired state.
Question 10
What is a namespace in Kubernetes?
a) A network segment
b) A virtual cluster providing scope for resources
c) A type of pod
d) A storage volume
Show Answer
Answer: b) A virtual cluster providing scope for resources
Explanation: Namespaces provide a way to divide cluster resources between multiple users or teams, providing scope for names (resource names must be unique within a namespace, not across namespaces).
Question 11
How can you view pods across all namespaces?
a) kubectl get pods
b) kubectl get pods --all-namespaces
c) kubectl get pods -n default
d) kubectl list pods
Show Answer
Answer: b) kubectl get pods --all-namespaces
Explanation: kubectl get pods --all-namespaces (or -A) lists pods in all namespaces. Without this flag, only pods in the default namespace (or current context namespace) are shown.
Question 12
What is the purpose of a taint on a Kubernetes node?
a) Marking a node as unhealthy
b) Preventing pods from being scheduled unless they tolerate the taint
c) Assigning pods to specific nodes
d) Configuring node networking
Show Answer
Answer: b) Preventing pods from being scheduled unless they tolerate the taint
Explanation: Taints repel pods from nodes unless the pod has a matching toleration. They're used to ensure dedicated nodes (e.g., for GPU workloads, master-only functions).
Question 13
What is the purpose of a nodeSelector?
a) Randomly selecting a node
b) Constraining pods to run on nodes with specific labels
c) Scheduling pods across multiple nodes
d) Removing pods from nodes
Show Answer
Answer: b) Constraining pods to run on nodes with specific labels
Explanation: nodeSelector is a simple constraint that limits which nodes a pod can run on based on node labels (e.g., disktype: ssd).
Question 14
Which command applies a YAML manifest to create or update resources?
a) kubectl create
b) kubectl apply
c) kubectl run
d) kubectl update
Show Answer
Answer: b) kubectl apply
Explanation: kubectl apply -f manifest.yaml creates or updates resources declaratively, maintaining the desired state defined in the YAML file.
Question 15
What is the difference between kubectl create and kubectl apply?
a) create is imperative; apply is declarative
b) apply is imperative; create is declarative
c) They are identical
d) create works with YAML only; apply works with JSON only
Show Answer
Answer: a) create is imperative; apply is declarative
Explanation: kubectl create is imperative (tells Kubernetes what to do). kubectl apply is declarative (tells Kubernetes the desired state, and Kubernetes makes it happen).
Domain 2: Workloads & Scheduling (Questions 16–24)
Question 16
What is the difference between a Pod and a Deployment?
a) A pod is an instance of containers; a Deployment manages pod replicas and updates
b) A Deployment is an instance of containers; a Pod manages deployments
c) They are interchangeable
d) Pods are for stateful workloads; Deployments are for stateless
Show Answer
Answer: a) A pod is an instance of containers; a Deployment manages pod replicas and updates
Explanation: A Pod is the smallest deployable unit. A Deployment manages ReplicaSets and provides declarative updates for pods (rollouts, rollbacks, scaling).
Question 17
Which resource is best for stateful applications requiring stable network identities?
a) Deployment
b) StatefulSet
c) DaemonSet
d) ReplicaSet
Show Answer
Answer: b) StatefulSet
Explanation: StatefulSet is designed for stateful applications that require stable, unique network identifiers, stable persistent storage, and ordered deployment/scaling.
Question 18
What is a DaemonSet used for?
a) Running a single pod on a specific node
b) Running a pod on every node in the cluster
c) Running multiple replicas of a pod
d) Running batch jobs
Show Answer
Answer: b) Running a pod on every node in the cluster
Explanation: DaemonSet ensures that a copy of a pod runs on all (or selected) nodes. Typically used for cluster infrastructure like monitoring agents (Prometheus Node Exporter), log collectors (Fluentd), and network plugins.
Question 19
Which Kubernetes resource is used to run batch jobs to completion?
a) Deployment
b) StatefulSet
c) Job
d) DaemonSet
Show Answer
Answer: c) Job
Explanation: A Job creates one or more pods and ensures they successfully complete their task. When the pod exits successfully, the Job is marked complete. CronJob creates Jobs on a schedule.
Question 20
What is a CronJob in Kubernetes?
a) A job that runs on a schedule (time-based)
b) A job that monitors cron processes
c) A resource for managing logs
d) A resource for managing backups
Show Answer
Answer: a) A job that runs on a schedule (time-based)
Explanation: A CronJob creates Jobs on a recurring schedule, defined using cron syntax. It's used for periodic tasks like backups, report generation, or cleanup.
Question 21
What is a ResourceQuota in Kubernetes?
a) A pricing tool
b) A limit on resource consumption per namespace
c) A limit on pod size
d) A billing tool
Show Answer
Answer: b) A limit on resource consumption per namespace
Explanation: A ResourceQuota sets limits on total resource consumption (CPU, memory, storage, object count) within a namespace, preventing any single team from consuming all cluster resources.
Question 22
What is the purpose of requests and limits in a pod spec?
a) Requests define minimum resources; limits define maximum resources
b) Requests define maximum resources; limits define minimum resources
c) They are identical
d) Only limits are used for scheduling
Show Answer
Answer: a) Requests define minimum resources; limits define maximum resources
Explanation: requests specify the minimum resources guaranteed to the container (used for scheduling). limits specify the maximum resources the container can consume (used for throttling/eviction).
Question 23
What happens when a container exceeds its memory limit?
a) Container is throttled
b) Container may be terminated (OOMKilled)
c) Container continues with lower priority
d) Container's limit is automatically increased
Show Answer
Answer: b) Container may be terminated (OOMKilled)
Explanation: When a container exceeds its memory limit, it may be terminated with OOMKilled (Out Of Memory) and potentially restarted depending on the restart policy.
Question 24
What is the purpose of a liveness probe?
a) Checking if the application is ready to serve traffic
b) Checking if the container is healthy (restart if not)
c) Checking CPU usage
d) Checking network connectivity
Show Answer
Answer: b) Checking if the container is healthy (restart if not)
Explanation: A liveness probe determines if a container is running properly. If the probe fails, kubelet kills the container and restarts it.
Domain 3: Services & Networking (Questions 25–34)
Question 25
What is the purpose of a Kubernetes Service?
a) Running background tasks
b) Exposing pods as a network service with stable IP and DNS
c) Storing configuration data
d) Managing secrets
Show Answer
Answer: b) Exposing pods as a network service with stable IP and DNS
Explanation: A Service provides a stable IP address and DNS name for accessing a set of pods, abstracting the underlying pod IPs (which change as pods are created/deleted).
Question 26
Which Service type exposes a service externally using a load balancer?
a) ClusterIP
b) NodePort
c) LoadBalancer
d) ExternalName
Show Answer
Answer: c) LoadBalancer
Explanation: LoadBalancer exposes the Service externally using a cloud provider's load balancer (e.g., AWS ELB, Azure LB, GCP LB). It's the standard way to expose services to the internet.
Question 27
What is the default Service type in Kubernetes?
a) NodePort
b) LoadBalancer
c) ClusterIP
d) ExternalName
Show Answer
Answer: c) ClusterIP
Explanation: ClusterIP is the default Service type. It exposes the Service on a cluster-internal IP, making it accessible only within the cluster.
Question 28
What is an Ingress in Kubernetes?
a) A type of Service
b) A resource that manages external access to services via HTTP/HTTPS routes
c) A pod that handles incoming traffic
d) A network plugin
Show Answer
Answer: b) A resource that manages external access to services via HTTP/HTTPS routes
Explanation: Ingress provides HTTP/HTTPS routing to Services based on hostnames or paths, also handling SSL/TLS termination, load balancing, and name-based virtual hosting.
Question 29
Which component implements Service networking on each node?
a) kubelet
b) kube-proxy
c) kube-controller-manager
d) coredns
Show Answer
Answer: b) kube-proxy
Explanation: kube-proxy handles Service networking by maintaining iptables or IPVS rules that route traffic from a Service's ClusterIP to the backend pods.
Question 30
What is the coreDNS component used for?
a) Service discovery within the cluster
b) Managing container images
c) Monitoring cluster metrics
d) Handling ingress traffic
Show Answer
Answer: a) Service discovery within the cluster
Explanation: coreDNS provides DNS resolution within the cluster, allowing pods to discover services by name (e.g., my-service.namespace.svc.cluster.local).
Question 31
What is the Kubernetes network model requirement?
a) Pods can communicate with each other across nodes without NAT
b) All pods must be on the same subnet
c) Only services can communicate across nodes
d) Pods cannot communicate across nodes
Show Answer
Answer: a) Pods can communicate with each other across nodes without NAT
Explanation: The Kubernetes network model requires: every pod gets a unique IP, pods can communicate with all other pods without NAT, and agents (kubelet) can communicate with pods.
Question 32
What is a NetworkPolicy in Kubernetes?
a) A firewall rule for pods
b) A security policy for users
c) A network configuration file
d) A pod scheduling rule
Show Answer
Answer: a) A firewall rule for pods
Explanation: NetworkPolicy defines how pods are allowed to communicate with each other and other network endpoints. It's like a firewall for pods, using labels and ports.
Question 33
Which Service type exposes a static port on each node's IP?
a) ClusterIP
b) NodePort
c) LoadBalancer
d) Headless
Show Answer
Answer: b) NodePort
Explanation: NodePort exposes the Service on a static port (30000-32767) on each node's IP address. Traffic to NodeIP:NodePort is forwarded to the Service's ClusterIP and backend pods.
Question 34
What is a Headless Service?
a) A Service without endpoints
b) A Service without a ClusterIP (used for DNS-based service discovery)
c) A Service without a selector
d) A Service without a name
Show Answer
Answer: b) A Service without a ClusterIP (used for DNS-based service discovery)
Explanation: A headless Service (clusterIP: None) doesn't provide load balancing. Instead, DNS returns the pod IPs directly, enabling client-side service discovery for stateful applications.
Domain 4: Storage (Questions 35–40)
Question 35
What is a PersistentVolume (PV) in Kubernetes?
a) A volume that exists independently of pods
b) A pod-specific storage resource
c) A container image storage
d) A temporary storage volume
Show Answer
Answer: a) A volume that exists independently of pods
Explanation: A PersistentVolume (PV) is a cluster-wide storage resource provisioned by an administrator. It exists independently of pods and has its own lifecycle.
Question 36
What is a PersistentVolumeClaim (PVC)?
a) A request for storage by a user/pod
b) A claim that a persistent volume exists
c) A storage configuration
d) A storage class definition
Show Answer
Answer: a) A request for storage by a user/pod
Explanation: A PVC is a request for storage resources. Users request storage (size, access mode) and Kubernetes binds the PVC to an appropriate PV.
Question 37
What is a StorageClass in Kubernetes?
a) A class of pods
b) A way to classify storage and provision PVs dynamically
c) A type of storage driver
d) A class of services
Show Answer
Answer: b) A way to classify storage and provision PVs dynamically
Explanation: StorageClass defines different storage types (SSD, HDD, network storage) and enables dynamic provisioning of PersistentVolumes when PVCs request them.
Question 38
What is the default storage provisioner in most cloud Kubernetes clusters?
a) Local storage
b) The cloud provider's CSI driver (e.g., EBS, Persistent Disk, Azure Disk)
c) NFS
d) iSCSI
Show Answer
Answer: b) The cloud provider's CSI driver (e.g., EBS, Persistent Disk, Azure Disk)
Explanation: Cloud Kubernetes clusters typically use the cloud provider's Container Storage Interface (CSI) driver to dynamically provision block storage volumes.
Question 39
What are the three access modes for PersistentVolumes?
a) ReadWriteOnce, ReadOnlyMany, ReadWriteMany
b) ReadWrite, ReadOnly, WriteOnce
c) Single, Multi, Shared
d) Local, Network, Cloud
Show Answer
Answer: a) ReadWriteOnce, ReadOnlyMany, ReadWriteMany
Explanation: RWO (single node read-write), ROX (many nodes read-only), RWX (many nodes read-write). The access mode depends on the underlying storage type.
Question 40
What happens when a PVC is deleted and the associated PV has a reclaim policy of "Delete"?
a) The PV is also deleted
b) The PV is retained
c) The PV is recycled
d) The PV is moved to another namespace
Show Answer
Answer: a) The PV is also deleted
Explanation: With reclaim policy "Delete," when a PVC is deleted, the PV and its underlying storage are also deleted. "Retain" keeps the PV for manual reclamation. "Recycle" is deprecated.
Domain 5: Troubleshooting (Questions 41–50)
Question 41
Which command shows the logs of a pod's container?
a) kubectl logs pod-name
b) kubectl describe pod-name
c) kubectl get pod-name
d) kubectl exec pod-name logs
Show Answer
Answer: a) kubectl logs pod-name
Explanation: kubectl logs pod-name retrieves the logs from a container in a pod. Use -c container-name for multi-container pods and -f to follow logs.
Question 42
Which command executes a command inside a running container?
a) kubectl logs
b) kubectl attach
c) kubectl exec
d) kubectl run
Show Answer
Answer: c) kubectl exec
Explanation: kubectl exec -it pod-name -- /bin/bash opens an interactive shell in a container. kubectl exec pod-name -- ls / runs any command inside the container.
Question 43
Which command shows detailed information about a pod including events?
a) kubectl get pods
b) kubectl describe pod pod-name
c) kubectl logs pod-name
d) kubectl explain pod
Show Answer
Answer: b) kubectl describe pod pod-name
Explanation: kubectl describe pod shows detailed information about a pod including status, conditions, events, container statuses, and resource usage.
Question 44
What does a CrashLoopBackOff status indicate?
a) The pod is starting successfully
b) The container is repeatedly crashing after startup
c) The pod is waiting to be scheduled
d) The container is running normally
Show Answer
Answer: b) The container is repeatedly crashing after startup
Explanation: CrashLoopBackOff means the container starts, crashes, is restarted, crashes again, and Kubernetes is increasing the backoff delay between restarts.
Question 45
What command is used to drain a node for maintenance?
a) kubectl delete node
b) kubectl cordon node
c) kubectl drain node
d) kubectl maintain node
Show Answer
Answer: c) kubectl drain node
Explanation: kubectl drain node-name safely evicts all pods from a node for maintenance, respecting PodDisruptionBudgets and ensuring workloads are moved to other nodes.
Question 46
What does kubectl cordon do?
a) Removes a node from the cluster
b) Marks a node as unschedulable (new pods won't be assigned)
c) Shuts down a node
d) Restarts a node
Show Answer
Answer: b) Marks a node as unschedulable (new pods won't be assigned)
Explanation: kubectl cordon node-name marks a node as unschedulable (SchedulingDisabled). Existing pods continue running, but no new pods are scheduled to the node.
Question 47
Which command would you use to check the health of cluster components?
a) kubectl cluster-info
b) kubectl health
c) kubectl status
d) kubectl get health
Show Answer
Answer: a) kubectl cluster-info
Explanation: kubectl cluster-info shows cluster information including control plane component health. kubectl get componentstatuses (or cs) also shows control plane health but is deprecated.
Question 48
How can you check which nodes are in the cluster?
a) kubectl get nodes
b) kubectl list nodes
c) kubectl show nodes
d) kubectl cluster-nodes
Show Answer
Answer: a) kubectl get nodes
Explanation: kubectl get nodes lists all nodes in the cluster with their status (Ready, NotReady), roles (master, worker), and Kubernetes version.
Question 49
What does the "ImagePullBackOff" error mean?
a) Pod image was pulled successfully
b) Kubernetes cannot pull the container image
c) The image is too large
d) The image is outdated
Show Answer
Answer: b) Kubernetes cannot pull the container image
Explanation: ImagePullBackOff means kubelet tried to pull the container image but failed (e.g., image not found, wrong tag, authentication error, network issue).
Question 50
What command is used to find which pod is running on a specific node?
a) kubectl get pods --field-selector spec.nodeName=node-name
b) kubectl get pods --node node-name
c) kubectl get node-pods node-name
d) kubectl describe node node-name | grep pods
Show Answer
Answer: a) kubectl get pods --field-selector spec.nodeName=node-name
Explanation: You can filter pods by node using field selectors. Alternatively, kubectl get pods -o wide shows the node column for all pods.
How Did You Score?
- 0–25 correct: Review the CKA Exam Guide.
- 26–40 correct: On track. Practice hands-on labs.
- 41–50 correct: Ready for the exam!
Access all CKA practice questions →
Related Articles
Bereit, dein Wissen zu testen?
Probiere unsere Übungsprüfungen mit Hunderten von realistischen Fragen aus.
Üben starten →