Demystifying CRI
summary
Shows how a custom CRI is implemented end-to-end: a Go gRPC/protobuf server that implements the CRI API, uses gRPC/protobuf for messages, invokes runC to spawn a sandbox based on the pause image, calls the CNI to wire the sandbox network namespace, and launches containers by rewriting their namespace to that sandbox. The example runtime is ~300 lines of code, pulls images, creates sandboxes, starts an httpd pod and verifies it via curl localhost; code is available in the linked GitHub repo.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:12False advertisement and CRI
- 3:20CRI prerequisites
- 6:31CRI versus runtime
- 9:44gRPC and Protobuf basics
- 12:36Linux namespaces and isolation
- 17:58CNI and sandbox creation
- 19:23Writing CRI demo setup
- 25:50Implementing CRI service
- 27:39Live demo verification
- 28:00Q&A
related talks
34mDemystifying CRI - Writing a CRI from Scratch
34mDemystifying CRI - Writing a CRI from Scratch
37mCRI-O: Under the Hood
31mCRI-O: The Runtime Control Room
38mIntroduction to CRI-O
29mCRI-O: All the Runtime Kubernetes Needs, and Nothing More
46mCRI-O: All the Runtime Kubernetes need
37mLet's Try All the CRI Runtimes: Part 2: Answering the Why Question!
