Courseiva
Storage →mediumMultiple Choice

CKA Storage Practice Question

A developer creates a PVC with storageClassName: "" (empty string). What does this mean?

⚠ Common exam trap

A common mix-up: candidates confuse an empty string `""` with omitting the field entirely, assuming it will fall back to the default StorageClass, but Kubernetes treats them as distinct: omitted means 'use default', while empty string means 'disable default and require exact match'.

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 PVC will only bind to PVs that also have storageClassName: ""

When a PVC has `storageClassName: ""` (empty string), it explicitly disables dynamic provisioning and static binding to a PV that also has `storageClassName: ""`. This means the PVC will only bind to a pre-existing PV that has its `storageClassName` set to an empty string, bypassing any default StorageClass. It does not remain pending indefinitely, nor does it use or trigger the default StorageClass.

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 PVC will remain pending indefinitely

    Why it's wrong here

    This statement is incorrect because the PVC can successfully bind if a matching PersistentVolume is already available. Specifically, if a statically provisioned PV exists with its storage class set to an empty string and has sufficient capacity, the control loop will bind them. Therefore, pending status is not guaranteed to be indefinite.

  • ✗

    The PVC will use the default StorageClass

    Why it's wrong here

    Omitting the storageClassName field entirely triggers the cluster's default StorageClass admission controller to assign a default class. In contrast, explicitly setting the field to an empty string ("") disables this fallback behavior. This explicitly signals to the control plane that the PVC must only match PVs with no StorageClass.

  • ✗

    The PVC will be dynamically provisioned using the cluster's default StorageClass

    Why it's wrong here

    Dynamic provisioning relies on an active volume plugin associated with a valid, named StorageClass to automatically create backing storage on demand. Specifying an empty string explicitly opts out of this dynamic workflow. Consequently, the Kubernetes volume controller will only search for existing, statically provisioned PersistentVolumes to satisfy the claim.

  • ✓

    The PVC will only bind to PVs that also have storageClassName: ""

    Why this is correct

    Setting storageClassName: "" on a PVC restricts binding exclusively to PersistentVolumes that also have their storageClassName set to an empty string or omitted. This behavior ensures that the PVC bypasses dynamic provisioning entirely. It allows the PVC to bind only to statically created PVs that represent pre-existing physical storage assets.

Go deeper

Related to this question

About these practice questions

This CKA question is part of Courseiva's 726-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam 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.