Containerd Container Runtime

Page last updated:

This topic discusses why VMware Tanzu Kubernetes Grid Integrated Edition (TKGI) uses containerd as the default container runtime instead of Docker.

Overview

As of TKGI v1.14, containerd is the default container runtime due to the removal of support for Docker in Kubernetes.

Kubernetes v1.20 deprecates Docker as an underlying runtime in favor of runtimes that use the Container Runtime Interface (CRI) created for Kubernetes. The Kubernetes community will remove Docker support in Kubernetes v1.22. Containerd is a preferred runtime for use with Kubernetes.

Docker is a complex container runtime that handles everything from building images and creating volumes to managing network plugins and overlay networks. To simplify cloud architecture management, Docker started separating components and functions, and in v1.11 introduced containerd.

Since then, containerd has become its own high-level container runtime, was accepted as a project within the Cloud Native Computing Foundation in 2019, and is at the Graduated project maturity level.

Benefits of Containerd

  • As a high-level container runtime, containerd does not require Docker to run. It runs on its own, with runc as its low-level container runtime. For deploying and managing Kubernetes, containerd can replace Docker and Docker-shim with CRI-Containerd.

  • Containerd abstracts system calls and operating system-specific functionality to provide a simple container runtime that specializes in running images in containers, pushing and pulling images to the registry, and managing the images themselves. Because of these abstractions, containerd works with Linux and Windows both on-premise and in the cloud.

  • Containerd is compatible with other low-level runtimes besides runc, supports tools such as kata-runtime to run containers, and supports running multiple container runtimes within the same environment.

  • Containerd provides container lifecycle APIs to create, execute, and manage containers and their tasks, an entire API dedicated to snapshot management.


Please send any feedback you have to pks-feedback@pivotal.io.