Courseiva
Troubleshooting →hardMultiple Select

CKA Troubleshooting Practice Question

A pod is in 'CrashLoopBackOff' state. Which THREE of the following are possible causes?

⚠ Common exam trap

The CKA exam often tests the distinction between CrashLoopBackOff and ImagePullBackOff, where candidates confuse image-related issues (like a missing image) with application-level startup failures that cause the container to crash.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

The container's startup command has invalid arguments

Option A is correct because if the container's startup command (ENTRYPOINT/CMD) contains invalid arguments, the process exits immediately with a non-zero code, causing kubelet to restart it repeatedly and enter CrashLoopBackOff. Option C is correct because if the application attempts to bind to a port already in use inside the container, it fails at startup and exits, triggering the same restart loop. Option E is correct because a missing required environment variable typically causes the application to fail fast during initialization, again producing repeated crashes. Option B is not a CrashLoopBackOff cause: a nonexistent image results in an ImagePullBackOff or ErrImagePull state, since the container never starts. Option D is also not correct: an unbound PVC leaves the pod stuck in Pending (or ContainerCreating) due to an unschedulable volume, not in CrashLoopBackOff.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✓

    The container's startup command has invalid arguments

    Why this is correct

    A container whose startup command includes invalid arguments (for example, a misspelled flag, undefined positional parameter, or a file path that does not exist) causes the runtime to launch the process only for it to exit immediately with a non-zero exit code. Because the process fails before it can do meaningful work, the kubelet sees a completed/error container and applies the restartPolicy, which rapidly restarts it and transitions to CrashLoopBackOff. The backoff timer doubles on each restart, but the underlying command flaw remains, so the crash loop persists until the arguments are corrected.

  • ✗

    The container image does not exist

    Why it's wrong here

    If the container image does not exist or the tag is invalid, the kubelet cannot pull it in the first place; this results in ImagePullBackOff (and eventually ErrImagePull) rather than CrashLoopBackOff. The pod is never in a Running state because there is no container process to crash. The failure happens at the container runtime level during the image pull phase, whereas CrashLoopBackOff requires successful image pull and container startup followed by an exit.

  • ✓

    The application tries to bind to a port that is already in use

    Why this is correct

    When an application inside a container attempts to bind to a network port that is already occupied within its network namespace—for instance, by a previous instance of the same pod on a single-container setup or a hostNetwork process—the socket bind system call fails with 'Address already in use'. The application logs this fatal error and exits, causing Kubernetes to restart the container according to the restart policy. Since the port conflict is persistent, each restart repeats the same failure, producing CrashLoopBackOff.

  • ✗

    The PersistentVolumeClaim is not bound

    Why it's wrong here

    An unbound PersistentVolumeClaim prevents the pod from being scheduled; the kubelet cannot attach and mount the volume because the PVC has not been fulfilled by an available PersistentVolume. Consequently, the pod remains in Pending state with events indicating 'waiting for a volume to be created', and its containers never start. CrashLoopBackOff, by contrast, is a post-start phase—the container image must have been pulled and the container started and exited at least once, which cannot happen when volume association fails.

  • ✓

    A required environment variable is not set

    Why this is correct

    A required environment variable that the application expects (e.g., DATABASE_URL, API_KEY, or CONFIG_PATH) is often read during early initialization; if absent, the program may throw an unhandled exception, call os.Exit(1), or panic with nil dereference, causing an immediate non-zero exit. The container starts successfully at the runtime level, so Kubernetes re-launches it as per restartPolicy, but every attempt fails identically because the variable is still absent. This leads to a crash loop, and it is often caught by inspecting logs for the specific missing configuration key.

About these practice questions

Courseiva writes every CKA question from scratch — 726 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This CKA practice question is part of Courseiva's free CNCF certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the CKA exam.