Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon

Kubernetes Containerd 1.1 Integration is now generally available

Save for later
  • 3 min read
  • 25 May 2018

article-image

After just 6 months of releasing the alpha version of Kubernetes containerd integration, the community has declared that the upgraded containerd 1.1 is now generally available.
Containerd 1.1 can be used as the container runtime for production Kubernetes clusters. It works well with Kubernetes 1.10 and also supports all Kubernetes features.

Let’s look at the key upgrades in the new Kubernetes Containerd 1.1 :

Architecture upgrade


kubernetes-containerd-1-1-integration-is-now-generally-available-img-0

Containerd 1.1 architecture with the CRI plugin


In the current version 1.1, the cri-containerd daemon is changed to a containerd CRI plugin. This CRI plugin is made default and is built-in containerd 1.1. It interacts with containerd through direct function calls. Kubernetes can now be used by containerd directly as this new architecture makes the integration more stable and efficient, and eliminates another grpc hop in the stack. Thus, the cri-containerd daemon is no longer needed.

Performance upgrades


Performance optimizations have been the major focus in the Containerd 1.1. Performance was optimized in terms of pod startup latency and daemon resource usage which are discussed in detail below.

Pod Startup Latency


The containerd 1.1 integration has lower pod startup latency than Docker 18.03 CE integration with dockershim. Following graph is based on the results from the ‘105 pod batch startup benchmark’ (The lower, the better)

kubernetes-containerd-1-1-integration-is-now-generally-available-img-1

Pod Startup Latency Graph


CPU and Memory Usage


The containerd 1.1 integration consumes less CPU and memory overall compared to Docker 18.03 CE integration with dockershim at a steady state with 105 pods. The results differ as per the number of pods running on the node. 105 is the current default for the max number of user pods per node.

kubernetes-containerd-1-1-integration-is-now-generally-available-img-2

CPU Usage Graph


kubernetes-containerd-1-1-integration-is-now-generally-available-img-3

Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at €18.99/month. Cancel anytime

Memory Usage Graph


On comparing Docker 18.03 CE integration with dockershim, the containerd 1.1 integration has 30.89% lower kubelet cpu usage, 68.13% lower container runtime cpu usage, 11.30% lower kubelet resident set size (RSS) memory usage,  and 12.78% lower container runtime RSS memory usage.

What would happen to Docker Engine?


Switching to containerd would not mean that one will be unable to use Docker Engine. The fact is that Docker Engine is built on top of containerd. The next release of Docker Community Edition (Docker CE) will allow using containerd version 1.1.

kubernetes-containerd-1-1-integration-is-now-generally-available-img-4

Docker engine built over Containerd


Containerd is being used by both Kubelet and Docker Engine. This means users choosing the containerd integration will not only get new Kubernetes features, performance, and stability improvements, but also have the option of keeping Docker Engine around for other use cases.

Read more interesting details on the Containerd 1.1 on Kubernetes official blog post.