Container runtimes
As you know from the previous chapters, containers can run on virtual machines, in the cloud, on-premise, on bare-metal servers, or simply on your laptop. The software responsible for basic operations such as downloading images from the registry and creating, starting, stopping, or deleting containers is called the container runtime. We’ve already learned about Docker tooling and runtime, but there are more runtimes that exist, including the following:
- Containerd
- CRI-O
- kata
- gVisor
Before going into runtime specifics, we need to understand what a Container Runtime Interface (CRI) is.
CRI
The CRI is a plugin interface that allows Kubernetes to use different container runtimes. In the first releases of Kubernetes before the CRI was introduced, it was only possible to use Docker as a runtime.
As you might remember, Kubernetes does not have its own runtime to do basic container operations, so it needs a runtime to manage containers...