Courseiva
Kubernetes FundamentalshardMultiple SelectObjective-mapped

KCNA Kubernetes Fundamentals Practice Question

Which THREE of the following are valid reasons to use a StatefulSet instead of a Deployment? (Select 3)

⚠ Common exam trap

CNCF often tests the misconception that StatefulSets are only for persistent storage, but the trap here is that candidates overlook the requirement for stable network identities and ordered operations, which are equally critical and distinct from storage needs.

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

You need stable, unique network identifiers (e.g., pod hostnames) that persist across reschedules

StatefulSets provide stable, unique network identifiers (e.g., pod hostnames) that persist across reschedules because each pod gets a fixed ordinal index (e.g., pod-0, pod-1) and a corresponding DNS name (e.g., pod-0.statefulset.namespace.svc.cluster.local). This is essential for applications like databases (e.g., Cassandra, ZooKeeper) that rely on consistent peer discovery and identity, which Deployments cannot guarantee since they assign random pod names and IPs.

Answer analysis

Option-by-option breakdown

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

  • You only need a single instance of the application

    Why it's wrong here

    A single-instance application can be run with a Deployment with replicas:1; StatefulSet is overkill and not needed.

  • You need stable, unique network identifiers (e.g., pod hostnames) that persist across reschedules

    Why this is correct

    StatefulSets provide stable network identities (e.g., pod-0, pod-1) that are maintained across rescheduling.

  • You need each pod to have its own persistent storage that is not shared

    Why this is correct

    StatefulSets can define a VolumeClaimTemplate that creates a unique PersistentVolumeClaim for each pod.

  • You need to deploy a stateless web application with multiple replicas

    Why it's wrong here

    A stateless web application with multiple replicas is precisely the use case for a Deployment, which manages identical, interchangeable Pods without stable network identities or persistent storage. A StatefulSet would be incorrect here because it enforces ordinal Pod naming and sticky identity, adding unnecessary overhead for a workload that requires neither. The temptation arises because StatefulSets are the correct choice when each replica needs a unique, stable hostname and persistent volume, such as for a database cluster or a distributed queue.

  • You need ordered, graceful deployment and scaling (e.g., pod-0 starts before pod-1)

    Why this is correct

    StatefulSets support ordered pod creation and termination, which is important for applications like databases.

About these practice questions

Courseiva writes every KCNA question from scratch — 833 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

Same concept, more angles

1 more way this is tested on KCNA

These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.

Variation 1. Which THREE of the following are valid reasons to use a StatefulSet instead of a Deployment? (Select 3)

hard
  • A.The application needs to be scaled up and down quickly without regard to order.
  • B.The application requires stable unique network identifiers that persist across rescheduling.
  • C.The application is stateless and can be replicated arbitrarily.
  • D.Each Pod instance requires its own persistent storage that persists across rescheduling.
  • E.The application must handle graceful shutdown and ordered termination.

Why B: StatefulSets provide stable, unique network identities (e.g., pod-0.svc.cluster.local) that persist across rescheduling, which is essential for applications like databases that rely on hostname-based discovery. Deployments assign random pod names and IPs, making them unsuitable for stateful workloads requiring consistent identity.

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This KCNA 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 KCNA exam.