containerd/reports/2017-03-24.md

2.4 KiB

Development Report for Mar 24, 2017

Container Level Metrics

We merged a PR to add our first pass of container level metrics to our prometheus output in containerd. We still have to review the metric names and structure before having something we are all comfortable supporting in the long run but we now have comprehensive metrics for all containers running on containerd.

Distribution

After hitting a major milestone of getting a proof of concept for end to end pull and run, this week the focus was on getting that code in the right place and figure out where the implementation gaps are.

Image to OCI Spec

We merged support for getting an image config that was pulled off of a registry and generating a spec based on the image properties in the ctr command. This will let you pull images off of a registry and run them based on the config and how the image was built.

Its very simple at the moment but will will be porting over the default spec and generation code from Docker soon into a package that can be easily consumed by clients of containerd.

You can test this by running:

bash
sudo dist pull docker.io/library/redis:alpine
sudo ctr run --id redis -t docker.io/library/redis:alpine

Image handlers

We refactored the fetch command into a more generic image handler interface. As we look forward to supporting the full oci image spec as well as the Docker distribution specifications, we are removing any opinionated code to make distribution as generalized and efficient as possible.

Image listing now with full image size

$ dist images
REF                                    TYPE                                                 DIGEST                                                                  SIZE     
docker.io/library/redis:latest         application/vnd.docker.distribution.manifest.v2+json sha256:1b358a2b0dc2629af3ed75737e2f07e5b3408eabf76a8fa99606ec0c276a93f8 71.0 MiB

Snapshot driver improvements

The overlay and btrfs driver implementations are now fully implemented and share an implementation for metadata storage. This new metadata storage package allows not only making snapshot drivers easier, but allow us to focus on making our existing drivers more resilient and stable once.