CKAD study materials
CKAD study resources

CKAD key terms

CKAD · Get comfortable with the vocabulary.

Pod

The smallest deployable unit in Kubernetes: one or more containers that share a network namespace, IP address, and storage volumes, and that are scheduled together on the same node.

Related: Init container, Sidecar container, emptyDir volume
Init container

A container that runs to completion before a Pod's main containers start, often to wait for dependencies or prepare files; if it fails, the kubelet retries it according to the Pod restart policy.

Related: Pod, Sidecar container
Sidecar container

A helper container running alongside the main application container in the same Pod, sharing its network and volumes, typically handling tasks such as logging, proxying, or data synchronisation.

Related: Pod, emptyDir volume
emptyDir volume

A temporary volume created when a Pod is scheduled and deleted when the Pod is removed; shared by all containers in the Pod and useful for scratch space or passing files between containers.

Related: Pod, Sidecar container
Job

A workload controller that runs Pods until a specified number of successful completions is reached, then stops creating new ones; suited to batch processing and one-off tasks.

Related: CronJob, Pod
CronJob

A controller that creates Jobs on a repeating schedule written in cron syntax, with settings for concurrency policy, deadlines, and how many successful or failed Job records to keep.

Related: Job
PersistentVolumeClaim

A request for storage of a given size and access mode that binds to a PersistentVolume; Pods mount the claim instead of referencing storage directly, decoupling workloads from the underlying volume implementation.

Related: StatefulSet, Pod
Resource requests and limits

Requests reserve the CPU and memory the scheduler guarantees for a container; limits cap the maximum it may consume, causing CPU throttling or memory-related termination when exceeded.

Related: HorizontalPodAutoscaler, kubectl top
Ephemeral container

A temporary container added to a running Pod for debugging that shares the Pod's namespaces; it has no probes or resource guarantees and cannot be removed once added.

Related: Pod, kubectl logs
Deployment

A controller that manages ReplicaSets to keep a specified number of identical Pods running, and that supports declarative rolling updates and rollbacks of the Pod template.

Related: ReplicaSet, Rolling update
ReplicaSet

A controller that ensures a specified number of identical Pod replicas exist at any time, replacing failed ones; it is normally created and managed indirectly by a Deployment.

Related: Deployment, Label selector
Rolling update

A deployment strategy that replaces Pods gradually, creating new ones while terminating old ones so the application stays available; its behaviour is tuned by maxSurge and maxUnavailable.

Related: maxSurge, maxUnavailable, kubectl rollout undo
maxSurge

A rolling update setting specifying how many Pods above the desired replica count may be created temporarily during the update, expressed as an absolute number or a percentage.

Related: maxUnavailable, Rolling update
maxUnavailable

A rolling update setting specifying how many Pods below the desired replica count may be unavailable during the update, as an absolute number or a percentage; zero gives no-downtime updates when combined with surge.

Related: maxSurge, Rolling update
kubectl rollout undo

A command that reverts a Deployment, DaemonSet, or StatefulSet to a previous revision recorded in its rollout history, optionally targeting a specific revision number.

Related: Deployment, Rolling update
DaemonSet

A controller that ensures a copy of a Pod runs on every node, or on a selected subset of nodes, commonly used for node-level agents such as log collectors or network plugins.

Related: Label selector, Pod
StatefulSet

A controller for stateful workloads that gives each Pod a stable ordered identity, its own PersistentVolumeClaim, and a predictable network name, with ordered creation and deletion.

Related: Headless Service, PersistentVolumeClaim
Helm chart

A packaged collection of Kubernetes manifest templates plus default values and metadata, installable and upgradable as a versioned release with user-supplied configuration overrides.

Related: Kustomize, Deployment
Kustomize

A tool built into kubectl that customises plain YAML manifests by layering patches, overlays, and image or name transformations without templating, applied with kubectl apply -k.

Related: Helm chart, Deployment
Label selector

A query over key/value labels used by controllers, Services, and policies to determine which objects they target; it supports equality-based and set-based matching expressions.

Related: ReplicaSet, NetworkPolicy
HorizontalPodAutoscaler

A resource that automatically adjusts the replica count of a Deployment, ReplicaSet, or StatefulSet based on observed metrics such as CPU utilisation or custom metrics.

Related: Deployment, Resource requests and limits
Liveness probe

A periodic check telling the kubelet whether a container is still healthy; repeated failures cause the container to be killed and restarted according to the Pod's restart policy.

Related: Readiness probe, Startup probe
Readiness probe

A periodic check deciding whether a container is ready to receive traffic; failing Pods are removed from Service endpoints but are not restarted, and return to rotation once they pass again.

Related: Liveness probe, Startup probe
Startup probe

A check that runs during container start-up and suppresses liveness and readiness checks until it succeeds, giving slow-starting applications time to initialise without being restarted prematurely.

Related: Liveness probe, Readiness probe
kubectl logs

A command that prints a container's standard output and error; flags allow following live output, viewing logs from a previous crashed instance, and choosing a container in a multi-container Pod.

Related: Ephemeral container, CrashLoopBackOff
kubectl top

A command that reports current CPU and memory usage for Pods or nodes, sourced from the metrics server; useful for spotting hot spots and validating requests and limits.

Related: Resource requests and limits, HorizontalPodAutoscaler
CrashLoopBackOff

A Pod status indicating a container repeatedly exits and Kubernetes waits with increasing delays before restarting it, usually caused by application errors, bad configuration, or failing probes.

Related: kubectl logs, Liveness probe
ConfigMap

An API object holding non-confidential key/value data or files that Pods consume as environment variables, command arguments, or mounted volumes, keeping configuration separate from container images.

Related: Secret, envFrom, Downward API
Secret

An API object for holding sensitive data such as passwords or tokens, stored base64-encoded and consumed like a ConfigMap; access is governed by RBAC and the data can be encrypted at rest.

Related: ConfigMap, envFrom, imagePullSecrets
envFrom

A container specification field that imports every key of a ConfigMap or Secret as an environment variable, optionally applying a prefix to each name to avoid collisions.

Related: ConfigMap, Secret
Downward API

A mechanism that exposes Pod and container metadata, such as name, namespace, labels, or resource limits, to running containers through environment variables or mounted files.

Related: ConfigMap, Secret
ServiceAccount

An identity object used by Pods when calling the Kubernetes API; its token is projected into containers and its permissions come from RoleBindings or ClusterRoleBindings.

Related: Secret, imagePullSecrets
securityContext

Pod- and container-level settings controlling privileges and access, including the user and group IDs to run as, read-only root filesystem, Linux capabilities, and privilege escalation.

Related: ServiceAccount, Secret
imagePullSecrets

A reference to one or more registry-credential Secrets that the kubelet uses to authenticate against a private container registry when pulling an image for a Pod.

Related: Secret, ServiceAccount
ClusterIP Service

The default Service type, providing a stable virtual IP and DNS name that load-balances traffic to the selected Pods; it is reachable only from inside the cluster network.

Related: NodePort Service, Headless Service, Label selector
NodePort Service

A Service type that opens a static port on every node's IP address and forwards traffic to the selected Pods, making the application reachable from outside the cluster.

Related: ClusterIP Service, Ingress
Headless Service

A Service whose clusterIP is set to None, so DNS returns individual Pod IP addresses instead of load-balancing; used with StatefulSets and for client-side service discovery.

Related: StatefulSet, ClusterIP Service
Ingress

An API object defining HTTP and HTTPS routing rules from outside the cluster to Services, based on host and path, which requires an Ingress controller to take effect.

Related: NodePort Service, ClusterIP Service
NetworkPolicy

A resource that selects Pods and declares which ingress and egress traffic is permitted, enforced by the CNI plugin; selected Pods become isolated except for explicitly allowed flows.

Related: Label selector, ClusterIP Service
kubectl port-forward

A command that tunnels a local port to a port on a Pod or Service through the API server, useful for testing or debugging without exposing the workload publicly.

Related: ClusterIP Service, Pod