CKA study materials
CKA study resources

CKA (Other exams) key terms

CKA · Get comfortable with the vocabulary.

etcd

Consistent key-value store that holds the entire desired and observed state of the cluster; the API server reads and writes it, and losing its data means losing the cluster.

Related: kube-apiserver, snapshot restore
kube-apiserver

Front end of the control plane that serves the REST API, validates and admits requests, and is the only component that talks directly to etcd.

Related: etcd, admission controller, kubeconfig
kube-scheduler

Control-plane component that watches for Pods with no assigned node and binds each to a node by filtering feasible nodes and scoring them.

Related: nodeSelector, taint and toleration, static Pod
kubelet

Node agent that receives PodSpecs, starts and monitors containers through the container runtime, reports node and Pod status, and runs probes and static Pods.

Related: static Pod, liveness probe, container runtime
kube-proxy

Node component that programs iptables, IPVS, or nftables rules so Service virtual IPs and load balancing work for traffic reaching the node.

Related: ClusterIP, kube-proxy mode
static Pod

Pod defined by a manifest file in the kubelet's configured directory and managed directly by the kubelet, not by the API server; control-plane components are often run this way.

Related: kubelet, kube-scheduler
kubeconfig

File holding clusters, users, and contexts that kubectl uses to pick an API server endpoint and credentials; the active context determines which cluster you act on.

Related: kube-apiserver, RBAC
RBAC

Authorization model built from Roles or ClusterRoles that list verbs on resources, bound to users, groups, or ServiceAccounts by RoleBindings or ClusterRoleBindings.

Related: ServiceAccount, kubeconfig
ServiceAccount

Namespaced identity for processes running in Pods, mounted as a token so workloads can authenticate to the API server and receive the permissions bound to it.

Related: RBAC, admission controller
admission controller

Plugin in the API server request path that can mutate or reject objects after authentication and authorization, enforcing policies such as resource limits or namespace existence.

Related: kube-apiserver, ResourceQuota
kubeadm

Tool that bootstraps a conformant cluster by generating certificates, starting control-plane components, joining nodes, and supporting upgrade and token commands.

Related: etcd, static Pod
CNI plugin

Binary invoked by the container runtime to attach Pod network interfaces, assign IP addresses, and set routes; examples include Calico, Cilium, and Flannel.

Related: Pod CIDR, NetworkPolicy
CSI driver

Plugin that lets Kubernetes provision, attach, mount, and snapshot storage from an external system by implementing the Container Storage Interface.

Related: PersistentVolume, StorageClass
Deployment

Controller that manages ReplicaSets to keep a declared number of Pod replicas running and supports rolling updates and rollbacks through revision history.

Related: ReplicaSet, rolling update
ReplicaSet

Controller that ensures a specified number of identical Pods exist, replacing failed ones; usually created and scaled indirectly by a Deployment.

Related: Deployment, label selector
DaemonSet

Controller that runs one Pod copy on every eligible node, or a subset chosen by node selectors, commonly used for log shippers, agents, and per-node networking.

Related: nodeSelector, taint and toleration
StatefulSet

Controller for Pods needing stable identity, ordered startup and shutdown, and per-replica persistent storage, addressed through a headless Service.

Related: headless Service, PersistentVolumeClaim
Job and CronJob

Job runs Pods until a target number of successful completions; CronJob creates Jobs on a cron schedule with concurrency and history limits.

Related: init container, restartPolicy
init container

Container that runs to completion before any app container in the Pod starts, often used to wait for dependencies or prepare files on a shared volume.

Related: emptyDir, Job and CronJob
label selector

Query over key-value labels used by controllers and Services to choose which objects they manage or route to; matchLabels requires exact matches, matchExpressions adds set logic.

Related: ReplicaSet, Service
nodeSelector

Pod field listing node labels that must all match for scheduling; simpler but less expressive than node affinity rules.

Related: node affinity, kube-scheduler
node affinity

Scheduling rules using requiredDuringSchedulingIgnoredDuringExecution or preferredDuringSchedulingIgnoredDuringExecution to match node labels with operators and weights.

Related: nodeSelector, taint and toleration
taint and toleration

Taint on a node repels Pods unless the Pod declares a matching toleration; used to reserve nodes for specific workloads or evict them during maintenance.

Related: node affinity, cordon and drain
cordon and drain

Cordon marks a node unschedulable; drain evicts its Pods while respecting PodDisruptionBudgets, typically before maintenance or an upgrade.

Related: taint and toleration, PodDisruptionBudget
PodDisruptionBudget

Policy limiting how many Pods of a selected set may be voluntarily unavailable, constraining eviction during drain or node upgrades.

Related: cordon and drain, ReplicaSet
resource requests and limits

Requests reserve CPU and memory for scheduling; limits cap usage, with memory overruns causing OOM kills and CPU overruns causing throttling.

Related: ResourceQuota, LimitRange
ResourceQuota

Namespace-scoped object capping total requests, limits, object counts, or storage claims, causing creation to fail once the aggregate would exceed the quota.

Related: LimitRange, resource requests and limits
LimitRange

Namespace policy supplying default requests and limits to containers and enforcing minimum, maximum, and ratio bounds on individual Pods or claims.

Related: ResourceQuota, resource requests and limits
liveness probe

Periodic check that restarts a container when it fails, used to recover from deadlocks; misconfiguration can cause endless restart loops.

Related: readiness probe, restartPolicy
readiness probe

Check that decides whether a Pod receives Service traffic; failing it removes the Pod from endpoints without restarting the container.

Related: liveness probe, EndpointSlice
restartPolicy

Pod-level setting of Always, OnFailure, or Never controlling whether the kubelet restarts containers that exit; Jobs usually use OnFailure or Never.

Related: Job and CronJob, liveness probe
Service

Stable virtual IP and DNS name that load-balances traffic to Pods matching a selector, decoupling clients from Pod churn and addresses.

Related: ClusterIP, EndpointSlice, label selector
ClusterIP

Default Service type reachable only inside the cluster through a virtual IP and DNS name, with kube-proxy programming the data path.

Related: NodePort, kube-proxy
NodePort

Service type that opens the same port on every node and forwards it to the Service, reachable from outside at node address plus that port.

Related: ClusterIP, LoadBalancer Service
LoadBalancer Service

Service type requesting an external load balancer from the cloud provider, which also allocates a NodePort for routing traffic to backends.

Related: NodePort, Ingress
Ingress

HTTP and HTTPS routing rules by host and path to Services, implemented by an ingress controller that watches Ingress objects and configures a proxy.

Related: IngressClass, headless Service
IngressClass

Object naming an ingress controller implementation and marking whether it is the cluster default, so Ingress objects are handled by the intended controller.

Related: Ingress
headless Service

Service with clusterIP None that publishes per-Pod DNS records instead of a virtual IP, giving clients direct addresses and stable identity for StatefulSets.

Related: StatefulSet, EndpointSlice
EndpointSlice

Object holding the IP addresses and ports of Pods backing a Service, replacing the older Endpoints object and scaled by grouping addresses.

Related: Service, readiness probe
NetworkPolicy

Namespaced rule set selecting Pods and allowing only listed ingress or egress traffic; enforcement requires a CNI plugin that supports it.

Related: CNI plugin, Pod CIDR
Pod CIDR

Address range from which each node receives a subnet for Pod IPs, configured on the controller manager and used by the CNI plugin.

Related: CNI plugin, NetworkPolicy
PersistentVolume

Cluster-level storage resource with its own lifecycle, provisioned statically by an admin or dynamically through a StorageClass, then bound to a claim.

Related: PersistentVolumeClaim, StorageClass, CSI driver
PersistentVolumeClaim

Namespaced request for storage with size, access modes, and optional class or selector; Kubernetes binds it to a matching volume.

Related: PersistentVolume, StorageClass
StorageClass

Object describing a provisioner, parameters, reclaim policy, and volume binding mode used to create volumes on demand for claims.

Related: PersistentVolumeClaim, CSI driver
access modes

Claim field requesting ReadWriteOnce, ReadOnlyMany, ReadWriteMany, or ReadWriteOncePod; support depends on the volume plugin rather than on Kubernetes itself.

Related: PersistentVolumeClaim, CSI driver
emptyDir

Pod volume created empty when the Pod starts and deleted when it is removed, shared by containers and often used for scratch space or init handoff.

Related: init container, hostPath
hostPath

Pod volume mounting a path from the node filesystem; useful for node agents but a security and portability risk for ordinary workloads.

Related: emptyDir, DaemonSet
snapshot restore

Recovering etcd from a saved snapshot with etcdctl, then pointing the API server at the restored data directory after stopping control-plane components.

Related: etcd, kubeadm
events

Short-lived API objects recording what happened to resources, such as scheduling failures or image pull errors, read with kubectl get or describe.

Related: kubectl logs, kubelet
kubectl logs

Command printing container output, with flags for previous crashed instances, specific containers, follow mode, and tailing a number of lines.

Related: events, kubectl exec
kubectl exec

Command running a process inside an existing container, used to inspect files, test DNS and connectivity, or debug an application from within its namespace.

Related: kubectl logs, ephemeral container
ephemeral container

Temporary container added to a running Pod for debugging without restarting it, with limited fields and no probes or resource guarantees.

Related: kubectl exec, kubectl debug node
kubectl debug node

Command that creates a privileged Pod on a chosen node with the host filesystem mounted, letting you inspect kubelet, runtime, and networking from the node.

Related: ephemeral container, kubelet
NotReady node

Node condition reported when the kubelet cannot renew its status or the runtime is unhealthy, causing Pods to be tainted and rescheduled elsewhere.

Related: kubelet, taint and toleration
CrashLoopBackOff

Pod state where a container repeatedly exits and the kubelet restarts it with increasing delay; diagnose with logs, previous logs, and describe events.

Related: kubectl logs, liveness probe
rolling update

Deployment strategy replacing Pods gradually under maxSurge and maxUnavailable, keeping the service available and allowing rollback to a prior revision.

Related: Deployment, readiness probe
container runtime

Software such as containerd or CRI-O that pulls images and runs containers on a node, reached by the kubelet through the Container Runtime Interface.

Related: kubelet, CNI plugin