Courseiva
Container OrchestrationmediumMultiple ChoiceObjective-mapped

KCNA Container Orchestration Practice Question

Which component implements the Container Runtime Interface (CRI) to manage container lifecycle in Kubernetes?

⚠ Common exam trap

Many candidates confuse the kubelet (which calls the CRI) with the actual CRI implementation, or they assume Docker itself implements CRI when in fact Docker uses containerd as its runtime and the dockershim was a separate adapter.

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

CRI-O

Both containerd and CRI-O are high-level container runtimes that implement the Container Runtime Interface (CRI) to manage the full lifecycle of containers (create, start, stop, delete) in Kubernetes. They communicate directly with the kubelet via the CRI protocol (gRPC) and handle image management, container execution, and resource isolation using low-level runtimes like runc. In contrast, the kubelet is the agent that calls the CRI but does not implement it itself, and Docker does not directly implement the CRI; it uses containerd internally and previously required the dockershim adapter.

Answer analysis

Option-by-option breakdown

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

  • kubelet

    Why it's wrong here

    The kubelet is the Kubernetes node agent that communicates with container runtimes via the CRI, but it does not implement the CRI itself. It is a consumer of the interface, not an implementation.

  • CRI-O

    Why this is correct

    CRI-O is a lightweight container runtime specifically designed to implement the CRI, allowing Kubernetes to use any OCI-compliant runtime. It is a valid CRI implementation and is commonly used in Kubernetes clusters.

  • containerd

    Why this is correct

    containerd is a high-level container runtime that implements the CRI and is the default runtime in many Kubernetes distributions. It manages the full container lifecycle and communicates directly with the kubelet via gRPC.

  • Docker

    Why it's wrong here

    Docker does not directly implement the CRI. It uses containerd internally as its container runtime, and in older Kubernetes versions, the dockershim was used as an adapter to translate CRI calls to Docker's API. Modern Kubernetes has deprecated dockershim.

About these practice questions

This KCNA question is part of Courseiva's 833-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

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 component is responsible for running containers in a Kubernetes node and implements the Container Runtime Interface (CRI)?

medium
  • A.kubelet
  • B.etcd
  • C.kube-proxy
  • D.containerd

Why D: containerd is the correct answer because it is the container runtime that directly manages container lifecycle operations (create, start, stop, delete) on a Kubernetes node and implements the Container Runtime Interface (CRI), which is the gRPC-based protocol that kubelet uses to interact with container runtimes. Kubernetes requires a CRI-compliant runtime, and containerd is a graduated CNCF project that fulfills this role by exposing the CRI API via its `cri` plugin.

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.