Intent of containerd effort
When containerd was first developed it had two goals. The first was to solve the upgrade problem with running containers and provide a codebase where OCI runtimes, like runc, could be integrated into Docker. However, as needs change in the container space and after speaking with various members of the community at the beginning of this year, we decided to expand the scope of containerd and make it a fully functional container daemon with storage, image distribution and runtime.
containerd fully supports the OCI Runtime and Image specifications that are part of the recently released 1.0 specifications. Additionally, it was important to build a stable runtime for users and platform builders. We wanted containerd to be fully functional; but also, it needed to retain a small core codebase so that it is easy to maintain and support in the long run with an LTS release receiving backported patches on a stable API.
To demonstrate the progress made on the project, Stephen Day presented the current status of containerd 1.0 alpha at the Moby Summit in LA two weeks ago,:
Check out the getting started with containerd guide to get your feet wet with containerd if you want to integrate it in your own container based system.
Introduction of the cri-containerd effort
Docker and Kubernetes both have similar requirements when it comes to a container runtime. They need something small, stable and easy to maintain. They also need an API that abstracts away platform and system specific details so that they can build a featureset for users without being slowed down by the messy syscalls and various driver support that is required to execute containers on a variety of operating systems.
In order to have Kubernetes consume containerd for its container runtime we needed to implement the CRI interface. CRI stands for “Container Runtime Interface” and is responsible for distribution and the lifecycle of pods and containers running on a cluster.
At Docker, we have a full time engineer working on the cri-containerd project along with the other maintainers to finish the cri-containerd integration to get Kubernetes running on containerd. Here is a presentation Liu Lantao from Google presented 2 weeks ago at Moby Summit LA about the status of cri-containerd:
Moby Summit LA allowed the various teams from different companies involved in these projects to meet and demo the latest about containerd, cri-containerd, bucketbench, and libnetwork CNI implementation. You can find a recap of the summit on the Moby blog, and get the latest updates from the teams at Moby Summit Copenhagen in a few weeks.
— chanezon (@chanezon) September 14, 2017