SlideShare a Scribd company logo
Phil Estes, Distinguished Engineer, IBM Cloud, @estesp
What’s Running My Containers?
A review of runtimes & standards
@estesp
Where Wizards Stay Up
Late
THE ORIGINS OF THE INTERNET
Katie Hafner and Matthew Lyon
@estesp
Standards
But the less formal meaning seemed even more fitting. “The
other definition of protocol is that it’s a handwritten
agreement between parties, typically worked out on the
back of a lunch bag,” Cerf remarked, “which describes pretty
accurately how most of the protocol designs were done.”
Proclamations of officialness didn’t further the Net nearly so
much as throwing technology out onto the Net to see what
worked. And when something worked, it was adopted.
“Standards should be discovered, not decreed,” said one
computer scientist in the TCP/IP faction. Seldom has it worked
any other way.
@estesp
Unix/chroot
BSD
1982 2000 Today2008200720062005
FreeBSD
jails/Solaris zones
OpenVZ
Parallels
Cgroups/Process
Containers
IBM/Google
AIX Wpars
IBM
LXC
A Brief Container History
Runtime specification
Image specification
runC implementation
Garden-runC
Guardian project
K8sCRI
*[0.2.x branch]
*[1.0 branch]
2013 2014 2015 2016 2017
> Announced June 20th, 2015
> Charter signed on
December 8th, 2015
> 37 member companies
> Initial specifications
reached 1.0 in June 2017
https://opencontainers.org
https://github.com/opencontainers
• A Linux Foundation Collaborative Project
• Free from specific vendor control / an
open ecosystem
• Includes:
○ a runtime specification
○ reference runtime* (runc)
○ an image format specification
○ an image distribution spec (2019)
*seeded with runc + libcontainer by Docker
runc
Created in June 2015
> 18 releases (1.0.0-rc6 : Nov 2018)
> 246 contributors
> OCI maintained/governance
> Used by Docker, containerd, cri-o,
garden-runc, cycle.io, among others
• Runc is a client wrapper around the pre-existing libcontainer
library project
• Runc is one implementation of the OCI runtime specification
• Scope of runc is clearly limited by OCI charter: no networking,
image handling/resolution, storage support
• Enablement of low-level OS features happen here: ambient
caps, rootless containers, new cgroup support, and so on
• Daemon-less operation; wrapping code must handle any
broader node and cluster level container management
@estesp
A Standard Container Substrate
OCI specifications
Linux kernel Windows kernel
Container
registries
Container
runtimes
Docker, containerd, cri-o,
Kata, Firecracker, gVisor,
Nabla, Singularity, ...
DockerHub, OSS
distribution project, Cloud
registries, JFrog, ...
@estesp
kubelet dockershim dockerd
containerd
runc
https://github.com/kubernetes/kubernetes/tree/release-1.4/pkg/kubelet/dockershim
Kubernetes doesn’t run containers
@estesp
The Kubernetes CRI
@estesp
kubelet
dockershim
dockerd
kubelet
cri-containerd
containerd
kubelet
cri-o
runc
kubelet
containerd
Kata Firecracker
kubelet --container-runtime {string}
--container-runtime-endpoint {string}
What CRI Runtimes Exist?
kubelet
singularity-cri
singularity
@estesp
• A stable, core, performant core container runtime for the cloud
• Has a CRI implementation, and is a CNCF graduated project
CRI Implementations
• “all the runtime Kubernetes needs and nothing more”; RH created
• CRI implementation over runc and 2 open libraries; K8s incubator
• Intel Clear Containers + Hyper.sh combined project
• Lightweight virtualization (KVM/qemu) under cri-o and containerd
• Amazon open source project announced Nov 2018; lightweight virt.
• Uses Rust-based VMM instead of qemu; plugs into containerd
• CRI implementation over Sylabs Singularity runtime project
• Userbase traditionally from academia/HPC use cases
@estesp
Containerd + CRI
https://kubernetes.io/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/
@estesp
CRI Product Landscape
• GKE: containerd-based K8s clusters in beta/selectable; default is Docker
• IBM Cloud: containerd-based clusters in production (all versions)
• Azure: OSS acs-engine includes containerd; AKS uses Docker; (but CRI-O for
OpenShift deployment)
• Amazon: EKS uses Docker by default; Firecracker using containerd
• CloudFoundry: Eirini project (CF on K8s) using containerd; pre-Eirini
(non-K8s-based) used runc, now containerd
• OpenShift: prior versions used RHEL-Docker (1.12/13); cri-o GA in OpenShift during
2018
• ICP: IBM private cloud offering defaults to Docker; containerd in tech preview
@estesp
OCI Network Effect
Singularity
- Added full OCI support in v3.1.0 of Singularity (Feb 2019)
- Can import/run OCI images/specs using singularity project
LXC
- Added OCI support in v3.0.0 of LXC (May 2018)
- Can download/run OCI format containers with LXC runtime
@estesp
• Positive outcomes
• OCI created a level playing field whereby implementers of runtimes and
higher-layer stacks could have complete interoperability via OCI standards
• Good cross-industry collaboration has delivered on stable, “boring” container
runtime technology; higher layers can provide choice in implementations
• Network effects driving OCI interoperability to “non-Docker” use cases
• CRI makes runtime choice a reality for Kubernetes as a common substrate
• Work in progress
• Choice can be confusing to those outside our bubble
• Common tooling choices/strategies
• Keeping the momentum; OCI now standardizing image distribution (registry
API)
Summary
@estesp
“The process of technological development is like
building a cathedral,” remarked Baran years later.
“Over the course of several hundred years new
people come along and each lays down a block on
top of the old foundations, each saying, ‘I built a
cathedral.’Next month another block is placed
atop the previous one. Then comes along an
historian who asks, ‘Well, who built the cathedral?’
Peter added some stones here, and Paul added a
few more. If you are not careful, you can con
yourself into believing that you did the most
important part. But the reality is that each
contribution has to follow onto previous work.
Everything is tied to everything else.”
What's Running My Containers? A review of runtimes and standards.

More Related Content

PDF
CraftConf 2019: CRI Runtimes Deep Dive: Who Is Running My Pod?
PDF
Whose Job Is It Anyway? Kubernetes, CRI, & Container Runtimes
PDF
CRI Runtimes Deep-Dive: Who's Running My Pod!?
PDF
It's 2018. Are My Containers Secure Yet!?
PDF
Docker Engine Evolution: From Monolith to Discrete Components
PDF
Let's Try Every CRI Runtime Available for Kubernetes
PDF
Embedding Containerd For Fun and Profit
PDF
Docker Athens: Docker Engine Evolution & Containerd Use Cases
CraftConf 2019: CRI Runtimes Deep Dive: Who Is Running My Pod?
Whose Job Is It Anyway? Kubernetes, CRI, & Container Runtimes
CRI Runtimes Deep-Dive: Who's Running My Pod!?
It's 2018. Are My Containers Secure Yet!?
Docker Engine Evolution: From Monolith to Discrete Components
Let's Try Every CRI Runtime Available for Kubernetes
Embedding Containerd For Fun and Profit
Docker Athens: Docker Engine Evolution & Containerd Use Cases

What's hot (20)

PDF
Containerd Project Update: FOSDEM 2018
PDF
An Open Source Story: Open Containers & Open Communities
PDF
Enabling Security via Container Runtimes
PPTX
CRI-containerd
PDF
Securing Containerized Applications: A Primer
PDF
Docker London Meetup: Docker Engine Evolution
PDF
Giving Back to Upstream | DockerCon 2019
PPTX
Introduction kubernetes 2017_12_24
PDF
Securing Containerized Applications: A Primer
PDF
The State of containerd
PDF
FOSDEM 2019: A containerd Project Update
PDF
Cloud Native TLV Meetup: Securing Containerized Applications Primer
PPTX
Moby Summit introduction
PDF
Kubernetes 架構與虛擬化之差異
PPTX
How to Achieve Canary Deployment on Kubernetes
PDF
KubeCon EU 2016: "rktnetes": what's new with container runtimes and Kubernetes
PDF
Virtualization inside kubernetes
PDF
The relationship between Docker, Kubernetes and CRI
PPTX
LinuxKit
PDF
KubeCon EU 2016: Killing containers to make weather beautiful
Containerd Project Update: FOSDEM 2018
An Open Source Story: Open Containers & Open Communities
Enabling Security via Container Runtimes
CRI-containerd
Securing Containerized Applications: A Primer
Docker London Meetup: Docker Engine Evolution
Giving Back to Upstream | DockerCon 2019
Introduction kubernetes 2017_12_24
Securing Containerized Applications: A Primer
The State of containerd
FOSDEM 2019: A containerd Project Update
Cloud Native TLV Meetup: Securing Containerized Applications Primer
Moby Summit introduction
Kubernetes 架構與虛擬化之差異
How to Achieve Canary Deployment on Kubernetes
KubeCon EU 2016: "rktnetes": what's new with container runtimes and Kubernetes
Virtualization inside kubernetes
The relationship between Docker, Kubernetes and CRI
LinuxKit
KubeCon EU 2016: Killing containers to make weather beautiful
Ad

Similar to What's Running My Containers? A review of runtimes and standards. (20)

PDF
Container Runtimes: Comparing and Contrasting Today's Engines
PDF
Innovating Out In The Open - OSCON 2016
PPTX
Innovating Out in the Open
PDF
Devoxx 2016: A Developer's Guide to OCI and runC
PPTX
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
PDF
Kubernetes on CRI-O
PDF
Oci overview and certification program for cncf 2017 12-04 final
PDF
CRI, OCI, and CRI-O
PDF
16. Cncf meetup-docker
PDF
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
PDF
Introduction to CRI and OCI
PDF
Navigating container technology for enhanced security by Niklas Saari
PDF
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
PDF
Evolution of containers to kubernetes
PDF
The ABC of Docker: The Absolute Best Compendium of Docker
PDF
Cloud Native Landscape (CNCF and OCI)
PDF
containerd summit - Deep Dive into containerd
PDF
CNCF Projects Overview
PDF
Containers, OCI, CNCF, Magnum, Kuryr, and You!
PDF
LXC, Docker, and the future of software delivery | LinuxCon 2013
Container Runtimes: Comparing and Contrasting Today's Engines
Innovating Out In The Open - OSCON 2016
Innovating Out in the Open
Devoxx 2016: A Developer's Guide to OCI and runC
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Kubernetes on CRI-O
Oci overview and certification program for cncf 2017 12-04 final
CRI, OCI, and CRI-O
16. Cncf meetup-docker
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
Introduction to CRI and OCI
Navigating container technology for enhanced security by Niklas Saari
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Evolution of containers to kubernetes
The ABC of Docker: The Absolute Best Compendium of Docker
Cloud Native Landscape (CNCF and OCI)
containerd summit - Deep Dive into containerd
CNCF Projects Overview
Containers, OCI, CNCF, Magnum, Kuryr, and You!
LXC, Docker, and the future of software delivery | LinuxCon 2013
Ad

More from Phil Estes (10)

PDF
Extended and embedding: containerd update & project use cases
PDF
JAX Con 2019: Containers. Microservices. Cloud. Open Source. Fantasy or Reali...
PDF
Bucketbench: Benchmarking Container Runtime Performance
PDF
Containerd Internals: Building a Core Container Runtime
PDF
AtlanTEC 2017: Containers! Why Docker, Why NOW?
PDF
Quantifying Container Runtime Performance: OSCON 2017 Open Container Day
PDF
Empower Your Docker Containers with Watson - DockerCon 2017 Austin
PDF
Containerize, PaaS, or Go Serverless!?
PDF
Container Security: How We Got Here and Where We're Going
PDF
Live Container Migration: OpenStack Summit Barcelona 2016
Extended and embedding: containerd update & project use cases
JAX Con 2019: Containers. Microservices. Cloud. Open Source. Fantasy or Reali...
Bucketbench: Benchmarking Container Runtime Performance
Containerd Internals: Building a Core Container Runtime
AtlanTEC 2017: Containers! Why Docker, Why NOW?
Quantifying Container Runtime Performance: OSCON 2017 Open Container Day
Empower Your Docker Containers with Watson - DockerCon 2017 Austin
Containerize, PaaS, or Go Serverless!?
Container Security: How We Got Here and Where We're Going
Live Container Migration: OpenStack Summit Barcelona 2016

Recently uploaded (20)

PPT
Introduction Database Management System for Course Database
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Online Work Permit System for Fast Permit Processing
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Transform Your Business with a Software ERP System
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
history of c programming in notes for students .pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
AI in Product Development-omnex systems
Introduction Database Management System for Course Database
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Which alternative to Crystal Reports is best for small or large businesses.pdf
Online Work Permit System for Fast Permit Processing
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Wondershare Filmora 15 Crack With Activation Key [2025
Internet Downloader Manager (IDM) Crack 6.42 Build 41
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Transform Your Business with a Software ERP System
ISO 45001 Occupational Health and Safety Management System
Design an Analysis of Algorithms I-SECS-1021-03
history of c programming in notes for students .pptx
PTS Company Brochure 2025 (1).pdf.......
How to Migrate SBCGlobal Email to Yahoo Easily
Operating system designcfffgfgggggggvggggggggg
CHAPTER 2 - PM Management and IT Context
AI in Product Development-omnex systems

What's Running My Containers? A review of runtimes and standards.

  • 1. Phil Estes, Distinguished Engineer, IBM Cloud, @estesp What’s Running My Containers? A review of runtimes & standards
  • 2. @estesp Where Wizards Stay Up Late THE ORIGINS OF THE INTERNET Katie Hafner and Matthew Lyon
  • 3. @estesp Standards But the less formal meaning seemed even more fitting. “The other definition of protocol is that it’s a handwritten agreement between parties, typically worked out on the back of a lunch bag,” Cerf remarked, “which describes pretty accurately how most of the protocol designs were done.” Proclamations of officialness didn’t further the Net nearly so much as throwing technology out onto the Net to see what worked. And when something worked, it was adopted. “Standards should be discovered, not decreed,” said one computer scientist in the TCP/IP faction. Seldom has it worked any other way.
  • 4. @estesp Unix/chroot BSD 1982 2000 Today2008200720062005 FreeBSD jails/Solaris zones OpenVZ Parallels Cgroups/Process Containers IBM/Google AIX Wpars IBM LXC A Brief Container History
  • 5. Runtime specification Image specification runC implementation Garden-runC Guardian project K8sCRI *[0.2.x branch] *[1.0 branch] 2013 2014 2015 2016 2017
  • 6. > Announced June 20th, 2015 > Charter signed on December 8th, 2015 > 37 member companies > Initial specifications reached 1.0 in June 2017 https://opencontainers.org https://github.com/opencontainers • A Linux Foundation Collaborative Project • Free from specific vendor control / an open ecosystem • Includes: ○ a runtime specification ○ reference runtime* (runc) ○ an image format specification ○ an image distribution spec (2019) *seeded with runc + libcontainer by Docker
  • 7. runc Created in June 2015 > 18 releases (1.0.0-rc6 : Nov 2018) > 246 contributors > OCI maintained/governance > Used by Docker, containerd, cri-o, garden-runc, cycle.io, among others • Runc is a client wrapper around the pre-existing libcontainer library project • Runc is one implementation of the OCI runtime specification • Scope of runc is clearly limited by OCI charter: no networking, image handling/resolution, storage support • Enablement of low-level OS features happen here: ambient caps, rootless containers, new cgroup support, and so on • Daemon-less operation; wrapping code must handle any broader node and cluster level container management
  • 8. @estesp A Standard Container Substrate OCI specifications Linux kernel Windows kernel Container registries Container runtimes Docker, containerd, cri-o, Kata, Firecracker, gVisor, Nabla, Singularity, ... DockerHub, OSS distribution project, Cloud registries, JFrog, ...
  • 11. @estesp kubelet dockershim dockerd kubelet cri-containerd containerd kubelet cri-o runc kubelet containerd Kata Firecracker kubelet --container-runtime {string} --container-runtime-endpoint {string} What CRI Runtimes Exist? kubelet singularity-cri singularity
  • 12. @estesp • A stable, core, performant core container runtime for the cloud • Has a CRI implementation, and is a CNCF graduated project CRI Implementations • “all the runtime Kubernetes needs and nothing more”; RH created • CRI implementation over runc and 2 open libraries; K8s incubator • Intel Clear Containers + Hyper.sh combined project • Lightweight virtualization (KVM/qemu) under cri-o and containerd • Amazon open source project announced Nov 2018; lightweight virt. • Uses Rust-based VMM instead of qemu; plugs into containerd • CRI implementation over Sylabs Singularity runtime project • Userbase traditionally from academia/HPC use cases
  • 14. @estesp CRI Product Landscape • GKE: containerd-based K8s clusters in beta/selectable; default is Docker • IBM Cloud: containerd-based clusters in production (all versions) • Azure: OSS acs-engine includes containerd; AKS uses Docker; (but CRI-O for OpenShift deployment) • Amazon: EKS uses Docker by default; Firecracker using containerd • CloudFoundry: Eirini project (CF on K8s) using containerd; pre-Eirini (non-K8s-based) used runc, now containerd • OpenShift: prior versions used RHEL-Docker (1.12/13); cri-o GA in OpenShift during 2018 • ICP: IBM private cloud offering defaults to Docker; containerd in tech preview
  • 15. @estesp OCI Network Effect Singularity - Added full OCI support in v3.1.0 of Singularity (Feb 2019) - Can import/run OCI images/specs using singularity project LXC - Added OCI support in v3.0.0 of LXC (May 2018) - Can download/run OCI format containers with LXC runtime
  • 16. @estesp • Positive outcomes • OCI created a level playing field whereby implementers of runtimes and higher-layer stacks could have complete interoperability via OCI standards • Good cross-industry collaboration has delivered on stable, “boring” container runtime technology; higher layers can provide choice in implementations • Network effects driving OCI interoperability to “non-Docker” use cases • CRI makes runtime choice a reality for Kubernetes as a common substrate • Work in progress • Choice can be confusing to those outside our bubble • Common tooling choices/strategies • Keeping the momentum; OCI now standardizing image distribution (registry API) Summary
  • 17. @estesp “The process of technological development is like building a cathedral,” remarked Baran years later. “Over the course of several hundred years new people come along and each lays down a block on top of the old foundations, each saying, ‘I built a cathedral.’Next month another block is placed atop the previous one. Then comes along an historian who asks, ‘Well, who built the cathedral?’ Peter added some stones here, and Paul added a few more. If you are not careful, you can con yourself into believing that you did the most important part. But the reality is that each contribution has to follow onto previous work. Everything is tied to everything else.”