Lessons Learned Migrating Kubernetes from Docker to containerd Runtime
summary
Migrating a Kubernetes cluster from Docker Engine to containerd is straightforward: create a containerd node pool on GKE, cordon and drain old nodes, and allow pods to recreate on the new pool; container images remain compatible. Observed benefits include lower pod startup latency — roughly 20 seconds faster in tests (same GKE version, nginx ingress via Helm, average over ~105 pods) — plus smaller attack surface and better debugging with crictl and runtime tooling ctr.
AI-written summary · about
chapters (27)
- 0:00Intro
- 0:26Why containerd runtime
- 2:44Ana Calin
- 3:08Agenda
- 3:28What is Container Runtime
- 3:44What is Container Runtime based on
- 3:57How I used to think about containers
- 4:28Container is an isolated process
- 4:39The Linux kernel
- 5:05Linux kernel features
- 8:06Lowlevel runtimes
- 9:42Container definition
- 11:40Docker Monolith
- 12:22Kubernetes Cluster
- 13:40Docker vs Container Team
- 14:46Containerd v1 vs v11
- 15:15Limitations
- 16:15Cryo
- 16:54Container Architecture
- 20:15Steps to migrate
- 20:49User observation
- 21:54Performance
- 24:14Resource Utilization
- 25:01Security
- 26:07Summary
- 27:03Resources
- 27:27Questions
related talks
27mKeep Calm and Containerd On!
43mcontainerd
35mIntroduction to containerd
42mDon’t Panic: Kubernetes will no longer support Docker
39mMore Than Secure: Containerd + KataContainers as Kubernetes Runtime
05mMoving to Kubernetes, or not?
32mFive things you need to know about your container runtime
35mWho's Running My Pods? A Deep Dive into the K8s Container Runtime Interface
