1 of 10

Kubernetes Community Call

Containerd demo

June 28, 2018

2 of 10

Why Containerd 1.0?

  • Continue projects spun out from monolithic Docker engine
  • Expected use beyond Docker engine (Kubernetes CRI)
  • Donation to foundation for broad industry collaboration
    • Similar to runc/libcontainer and the OCI

runc

containerd

@estesp

3 of 10

@estesp

4 of 10

Project Contributors

  • Containerd is a member project within the Cloud Native Computing Foundation (CNCF)
  • The Moby project governance, adopted in Q42017 is not a BDFL model
  • The newly formed Moby Technical Steering Committee (TSC) oversees Moby projects
  • Broad base of contributors, and growing

TOP TEN CONTRIBUTORS

  1. Docker
  2. Google
  3. NTT
  4. Tesla*
  5. IBM
  6. ZTE
  7. Microsoft
  8. Red Hat**
  9. Huawei
  10. Amazon Web Services

* Former Docker maintainer left for Tesla

** Red Hat contributions mostly prior to 1.0 codebase

@estesp

5 of 10

Technical Goals/Intentions

  • Clean gRPC-based API + client library
  • Full OCI support (runtime and image spec)
  • Stability and performance with tight, well-defined core of container function
  • Decoupled systems (image, filesystem, runtime) for pluggability, reuse

@estesp

6 of 10

Release Process

https://github.com/containerd/containerd/blob/master/RELEASES.md

Latest Stable Release: v1.1.0 (April 23, 2018)

Active Point Release: v1.1.1-rc.2 available this week

Master: Leading to v1.2 late summer (estimated)

Key Points:

  • Using SemVer
  • Major releases have a support horizon with backported fixes
    • Already proven out post-1.0.0 with 2 releases

@estesp

7 of 10

Users

  • CURRENT
  • Docker (moby)
  • Kubernetes (cri-containerd)
  • LinuxKit
  • BuildKit
  • PLANNING/DEVELOPING
  • CloudFoundry (Garden-runC -> ctrd?)
  • Apache OpenWhisk
  • Puppet R&D

@estesp

8 of 10

Kubernetes CRI Runtimes:

Docker vs. cri-containerd

( **NOTE: Cri-container project merged into containerd GitHub project in January 2018; is now a plugin within the containerd binary )

**

8

kubelet

kubelet

dockershim (CRI)

Docker engine

containerd

containerd-shim

containerd-shim

containerd-shim

runc

runc

runc

containerd

containerd-shim

containerd-shim

containerd-shim

runc

runc

runc

cri plugin

containerd

cri-containerd

ttrpc: very lightweight

gRPC protocol format

@estesp

9 of 10

Containerd + K8s CRI

@estesp

10 of 10

Containerd in the Cloud(s)

  • Kelsey Hightower’s “Kubernetes the Hard Way” deploys containerd as the kubelet runtime
  • GKE alpha: containerd-based K8s clusters
  • IBM Cloud: containerd-based clusters in staging
  • Azure: OSS acs-engine includes containerd; AKS moving to containerd (but CRI-O for OpenShift)
  • Amazon: still reviewing runtime options for EKS
  • CloudFoundry: moving to containerd from runc

@estesp