kelseyhightower/cri-o-tutorial — explained in plain English
Analysis updated 2026-07-17 · repo last pushed 2016-12-15
Learn how Kubernetes starts and stops containers by installing cri-o from scratch.
Set up a Redis server inside a Kubernetes Pod using cri-o instead of Docker.
Evaluate cri-o as a container engine option without installing full Kubernetes.
Practice manual Linux networking and systemd service configuration for container runtimes.
| kelseyhightower/cri-o-tutorial | encrypted-spaces/prototype | hisorange/artgen | |
|---|---|---|---|
| Stars | 95 | 95 | 95 |
| Language | — | Rust | TypeScript |
| Last pushed | 2016-12-15 | — | — |
| Maintenance | Dormant | — | — |
| Setup difficulty | hard | hard | moderate |
| Complexity | 4/5 | 5/5 | 3/5 |
| Audience | ops devops | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires compiling software from source and manually configuring networking and systemd service files.
The cri-o Tutorial is a step-by-step guide that walks you through installing and using cri-o, a tool designed to run application containers in a Kubernetes environment. Think of a container as a neatly packaged, self-contained application that runs the same way regardless of where it is deployed, and Kubernetes as the system that manages large groups of these containers. This tutorial shows you how to set up the underlying engine that actually starts and stops those containers. At a high level, the tutorial walks you through setting up several building blocks on a Linux machine. You install the core cri-o software, a networking component so the containers can talk to each other, and a program called runc that does the heavy lifting of launching the container. Interestingly, it also has you install Docker as a temporary helper, because at the time the tutorial was written, cri-o still relied on Docker to download container images. The guide then walks you through starting a Redis server, a popular data storage tool, inside a "Pod," which is simply Kubernetes terminology for a wrapper that holds one or more containers. This project is aimed at developers or system administrators who want to understand how Kubernetes manages containers under the hood, without needing the full, complex Kubernetes platform installed. For example, if you are building tools that interact with Kubernetes or evaluating different container engines for your infrastructure, this tutorial gives you a safe, isolated environment to experiment with. By the end, you will have created a Pod, launched a Redis container inside it, tested that Redis is responding to commands, and then cleaned everything up. The tutorial is notably hands-on and granular. It does not shy away from having you compile software from source code, manually configure networking files, or write system service configurations from scratch. This approach means it takes some patience and basic Linux command-line familiarity to complete. It is essentially a snapshot of an earlier era of container technology, written when cri-o was still a newer project and relied on external tools like Docker for basic tasks like downloading images.
A hands-on, step-by-step tutorial for installing cri-o, the engine that starts and stops containers inside Kubernetes.
Dormant — no commits in 2+ years (last push 2016-12-15).
Open-source tutorial content you can follow and adapt, check the repo's license file for specific reuse terms.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.