Skip to content

containerd 1.2.0-rc.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@dmcgowan dmcgowan released this 20 Sep 20:40
v1.2.0-rc.0
99fc40f

Welcome to the v1.2.0-rc.0 release of containerd!
This is a pre-release of containerd

The third major release of containerd brings both a mix of boring and
exciting changes. While fixing many bugs and continuing support for the
containerd 1.0 API, new APIs and interfaces have been added to allow
containerd to be more extensible and cover more use cases.

New V2 Runtime

A new v2 runtime has been added with a stable gRPC interface for managing
containers through external shims.

This allows runtime authors to easily integrate with containerd over a stable
API.

Various runtimes can be selected on a per container basis using the WithRuntime opt
or to test via ctr ctr run --runtime io.containerd.runc.v1.

Documentation

Updated CRI Plugin

Containerd 1.2 is validated against Kubernetes v1.11 and v1.12, but it is also compatible with Kubernetes v1.10.

To use containerd 1.2 with Kubernetes v1.10, be sure to run the stream server on an address accessible to the apiserver. A simple way is to set stream_server_address="" in the [plugins.cri] section of containerd.toml, so that cri plugin will automatically select a routable node address.

Kubernetes Runtime Class

Kubernetes Runtime Class introduced in Kubernetes 1.12 is supported.

Users can:

  • Configure alternative runtime handlers with the config option plugins.cri.containerd.runtimes.runtime_handler_name, e.g. plugins.cri.containerd.runtimes.kata. (config.md)
  • Use the alternative runtime handler in Kubernetes by creating RuntimeClass for the runtime handler, and specifying RuntimeClassName in the pod spec. (doc)

The plugins.cri.containerd.untrusted_workload_runtime config option and io.kubernetes.cri.untrusted-workload pod annotation are still functional, but start being deprecated. It is recommended to migrate to the RuntimeClass api.

Other Features

  • Supported ProcMount option introduced in Kubernetes 1.12.
  • Added a new config option plugins.cri.registry.auths for user to config default credentials for specific registries. (doc)
  • Added a new config option plugins.cri.x509_key_pair_streaming for user to config a valid certificate for the stream server. (config.md)

Notable Changes

  • cri plugin can see images pulled/imported into containerd by ctr images pull and ctr images import.
  • CNI config is now dynamically reloaded when changed.
  • IPv4 address is guaranteed to be selected, when there are both IPv4 and IPv6 addresses for a pod.
  • Privileged untrusted workload is allowed, the workload will get privilege inside the sandbox.
  • cri plugin stream server serves on http://localhost:0 by default. This is to work with the kubelet streaming proxy introduced in Kubernetes 1.11.
  • Fixed an issue that a container can't be stopped when container processes are accidentally moved out of the container cgroups.
  • cluster/health-monitor.sh in the release tarball will be deprecated next release. Please use Kubernetes health-monitor.sh instead.

New Proxy Plugins

A new proxy plugin configuration has been added to allow external snapshotters
be connected to containerd using gRPC.

Documentation

Managed /opt directory

A new Install method on the containerd client allows users to publish host level
binaries using standard container build tooling and container distribution tooling
to download containerd related binaries on their systems.

This can be used for v2 runtime authors to get their runtime shims on an existing
containerd system. It can also be used to install runc and other related tools.

> ctr content fetch docker.io/crosbymichael/runc:latest
> ctr install docker.io/crosbymichael/runc:latest

Documentation

Garbage Collection

Add support for cleaning up leases and content ingests to garbage collections.

Add expiration label to clean up temporary resources.

API Changes

Minor API additions

Other Improvements

Improved multi-arch image support using more precise matching and ranking

Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.

Contributors

  • Michael Crosby
  • Lantao Liu
  • Derek McGowan
  • Phil Estes
  • Justin Terry
  • Akihiro Suda
  • Kir Kolyshkin
  • Abhinandan Prativadi
  • Stephen J Day
  • Kenfe-Mickaël Laventure
  • Evan Hazlett
  • Sebastiaan van Stijn
  • Andrei Vagin
  • Brian Goff
  • John Howard
  • Darren Stahl
  • Ian Campbell
  • Lifubang
  • Michael Wan
  • Wei Fu
  • Claudia Beresford
  • JulienBalestra
  • Maksym Pavlenko
  • Samuel Karp
  • Xuean Yan
  • Felix Abecassis
  • Jian Liao
  • Jie Zhang
  • Luc Perkins
  • Mathieu Champlon
  • Mike Brown
  • Tim Allclair
  • Tom Godkin
  • Tõnis Tiigi
  • Vincent Demeester
  • Xiaodong Zhang
  • Yanqiang Miao
  • Yongxin Li
  • Yu-Ju Hong
  • Ace-Tang
  • Alban Crequy
  • Aleksa Sarai
  • Alexander Gerasiov
  • Andrew Osheroff
  • Arnaud Rebillout
  • Bin Du
  • Bingshen Wang
  • Danail Branekov
  • Daniel, Dao Quang Minh
  • Dave Henderson
  • Eric Ernst
  • Filipe Brandenburger
  • Frank Yang
  • Harshal Patil
  • Justin Cormack
  • Kevin Xu
  • Lihua Tang
  • Lu Jingxiao
  • Madhan Raj Mookkandy
  • Michael Fraenkel
  • Nikos Anastopoulos
  • Oliver Stenbom
  • Parav Pandit
  • Ricardo Aravena
  • Rolf Neugebauer
  • Rui Cao
  • Sudeesh John
  • Tobias Klauser
  • Wei Fu
  • Xiaoxi He

Changes

Changes from containerd/aufs

Changes from containerd/cgroups

  • 5e61083 Merge pull request #50 from jingxiaolu/master
  • 0d1587c Add interface AddTask to control groups. So that we can set tasks when we need.
  • 07683a6 Merge pull request #45 from anastop/master
  • 15ef4c3 Add Update method for the cpuset controller
  • c755602 Merge pull request #41 from estesp/update-travis-go
  • 0a357bb Update Go versions for travis
  • 5539584 Fix incorrect use of OCI runtime specs-go cgroup dev types
  • bf7d89f Merge pull request #40 from containerd/license
  • f1d9380 Add license to files
  • 78a98a6 Merge pull request #39 from paravmellanox/master
  • ccd26c4 Add support for rdma cgroup

Changes from containerd/console

  • c12b1e7 Merge pull request #29 from crosbymichael/win
  • 7a61819 Update read write on windows console
  • 8894ab3 Revert "Fix reading from and writing to console on windows"
  • b3d113c Use stdout for windows console
  • 4d8a41f Merge pull request #27 from gerasiov/master
  • 5d1b48d console_linux: Fix race: lock Cond before Signal.
  • 9a57d21 Merge pull request #28 from crosbymichael/travis
  • 058dd74 Update travis file for 1.10
  • 9290d21 Merge pull request #25 from mat007/support-read-write-windows
  • a7ba593 Fix reading from and writing to console on windows
  • 6fe6f36 Fix some typos in comments

Changes from containerd/continuity

  • f44b615 Merge pull request #124 from HusterWan/zr/expose-func
  • 4469d34 feature: expose atomicWriterFile function as AtomicWriteFile
  • c7c5070 Merge pull request #121 from kolyshkin/xattr
  • a408b7b sysx/xattr: unify implementation
  • 363bb7e vendor: bump golang.org/x/sys to 77b0e4315053
  • 0e47603 sysx: add README
  • 0377f7d Merge pull request #120 from kolyshkin/lchmod-linux-go111
  • 6d0b394 context.Apply: no need to skip chmod on symlinks
  • 94af800 Lchmod(): fix for Linux/Go 1.11
  • 9ab0ec6 Lchmod(): simplify and optimize
  • 2b69c16 sysx.Fchmodat(): remove
  • d2ce1bc sysx/xattr_darwin.go: rm duplicate Fchmodat def
  • 246e490 Merge pull request #111 from cpuguy83/disk_usage_cancellation
  • ab18c4f Merge pull request #115 from cpuguy83/update_travis
  • d3c2351 Merge pull request #113 from darstahl/ResolveRoot
  • a60600a Merge pull request #117 from dmcgowan/fix-create-file-reader-creation
  • 7d784df Fix bug in multiple calls to file applier
  • 2d3749b Merge pull request #116 from dmcgowan/random-file-test
  • a3fa14c Update TestCopyWithLargeFile
  • 7333bda Merge pull request #114 from cpuguy83/fix_copy_file_range_usage
  • afba265 Fix copy_file_range usage for files > 2GB
  • 7f1a8b2 Make sure travis tests on latest go version.
  • 5633c24 Stop resolving symlink in containWithRoot
  • 7a71e24 Fix vet failure
  • 8100e75 Resolve context root to follow symlinks as root directories
  • c6cef34 Merge pull request #106 from cpuguy83/export_copy_file
  • a88ec15 Merge pull request #108 from tklauser/xattr-sys-unix
  • 6cde904 Support cancellation via context in DiskUsage.
  • d59f454 Export copyFile
  • 6268e28 sysx: use xattr functions from x/sys/unix

Changes from containerd/cri

  • 9f39e328 Merge pull request #919 from Random-Liu/update-cri-tools
  • 3de8c8bf Update cri-tools to 98eea54af789ae13edce79cba101fb9ac8e7b241.
  • 31a960fb Merge pull request #918 from Random-Liu/show-runtime-handler-in-sandbox-info
  • 46b8f429 Merge pull request #912 from Random-Liu/add-hostname-env-integration-test
  • 4b45e16a Show runtime handler in sandbox debug info.
  • c7c68993 Add hostname env integration test.
  • e402ae2f Merge pull request #914 from Random-Liu/fix-addition-gids
  • 51ee6ea6 Add integration test
  • ca3b806b Fix addition group ids.
  • f267f217 Update containerd to 66b984e
  • 3e5eb0c7 Merge pull request #911 from Random-Liu/sctp-support
  • f540c2a7 Skip sctp protocol hostport mapping.
  • 04703092 Merge pull request #908 from Random-Liu/update-kubernetes
  • a2655acd Update kubernetes to v1.12.0-beta.1.
  • fe0cd367 Merge pull request #865 from Random-Liu/cache-image-reference
  • ed68cfd5 Merge pull request #901 from Random-Liu/fix-hostname-env
  • 953d67d2 Create image reference cache.
  • f08a90ff Fix hostname env.
  • cfdf8724 Merge pull request #891 from tallclair/runtimehandler
  • 9cd964f6 Merge pull request #898 from Random-Liu/revert-#895
  • eb3d3cfc Revert "Add HOSTNAME to env by default for pod containers"
  • db8500d1 Merge pull request #892 from Random-Liu/fix-volume-mount-order
  • e7189a25 Add RuntimeHandler support
  • 67c0b3e5 Merge pull request #894 from Random-Liu/support-masked-readonly-paths
  • 1e471b1a Merge pull request #895 from estesp/add-hostname-env
  • 4c3e195d Add HOSTNAME to env by default for pod containers
  • 3e4cec87 Add MaskedPaths and ReadonlyPaths support.
  • 4a65865e Update kubernetes to 6b7c39a4f8d4c38e8724550cc3e6e41b7ac7a276
  • 063f8158 Sort volume mount.
  • 89b5b3cc Vendor latest CRI API
  • 49877571 Merge pull request #886 from DataDog/JulienBalestra/tls-stream
  • dffd0dfa streaming: tls conf validation to func with tests
  • 9acd9531 Merge pull request #890 from Random-Liu/update-go-cni
  • 3da8bedb Update go-cni to 6d7b509a054a3cb1c35ed1865d4fde2f0cb547cd.
  • 859003a9 stream: struct for x509 key pair, update the docs, error management
  • b82b5242 stream: can use user certificates
  • df67dfff Merge pull request #885 from Random-Liu/enhance-container-stop
  • bca304ff Fix an issue that container/sandbox can't be stopped.
  • a3af7393 Merge pull request #880 from thaJeztah/align_dependencies_to_tags
  • 1d7f5f43 Use tagged versions for dependencies where possible
  • 58eb0455 Merge pull request #873 from miaoyq/verify-selinux-level
  • a87bda08 update selinux to b6fa367
  • 415727cd verify selinux level format
  • 7d483b2f Merge pull request #874 from Random-Liu/update-containerd
  • 6379fd03 Update containerd to b9eeaa1.
  • c9d61515 Merge pull request #869 from Random-Liu/support-netd
  • d1dcacf9 Support netd in GCE bootstrap.
  • 1263024a Merge pull request #864 from Random-Liu/unpack-during-import
  • e1a37e87 Unpack image during import.
  • a0cfc8c1 Merge pull request #857 from egernst/untrusted-priv
  • 9a01272d sandbox: separate host accessing workload and privileged
  • 2be13a8a Merge pull request #858 from Random-Liu/stream-serve-on-local
  • b3d6f163 Serve streaming on localhost by default to match k8s 1.11 default.
  • 42a98de2 Merge pull request #851 from yanxuean/support-no-pivot
  • 7065dd81 support no_pivot option for runc
  • 7beac6fc Merge pull request #849 from dmcgowan/remove-stringid
  • 1984e451 Replace stringid with simple rand reader
  • 2eb817c7 Merge pull request #843 from Random-Liu/document-no-overwrite-dir
  • 5637e8be Set 0022 umask for hack/release.sh.
  • 0f3c83b1 Use --no-overwrite-dir in installation doc.
  • 1d0d9b34 Merge pull request #841 from Random-Liu/add-back-missing-vendor
  • fb60d18f Add missing vendor back.
  • ca325665 Merge pull request #838 from Random-Liu/add-auth-config
  • 1d9a754f Update containerd to b382b6f.
  • e4ad6809 Remove pkg/containerd/resolver package.
  • 952e53bf Add registry auth config, and use docker resolver in containerd.
  • 5ad95b2d Merge pull request #833 from Random-Liu/update-containerd-k8s
  • 88c5165b Update containerd and k8s.
  • bc99f7a7 Merge pull request #832 from Random-Liu/remove-crictl-on-gce
  • f5803748 Remove crictl on GCE for all cases.
  • c68b6051 Merge pull request #831 from Random-Liu/fix-link
  • fd71c9f0 Fix another link.
  • 47b8d30b Merge pull request #828 from yujuhong/fix-gce-link
  • 0e42438e Merge pull request #829 from Random-Liu/local-stream-server
  • f6ab733f Set stream server to serve on localhost on GCE.
  • e23c0e70 Fix link to GCE getting started guide
  • 4eb4a295 Merge pull request #825 from abhi/cni_config
  • 86097102 vendoring latest go-cni with fixes
  • 263b0b99 Change to keep in sync with latest cni config
  • 07020dbd Merge pull request #820 from filbranden/usercap1
  • 01d77d44 Update github.com/opencontainers/runtime-tools to v0.6.0
  • 441a57aa Merge pull request #821 from Random-Liu/fix-snapshotter-panic
  • 9cb82aae Merge pull request #823 from Random-Liu/update-crictl
  • cfa88fca Merge pull request #824 from Random-Liu/make-max-log-size-configurable
  • b5d053f3 Make max container log line size configurable through cloud init.
  • bdddbed4 Update crictl to v1.11.0.
  • b60e456b Fix snapshotter nil panic.
  • e3d57d24 Merge pull request #761 from Random-Liu/add-log-max-size
  • ad293701 Merge pull request #816 from Random-Liu/fix-double-dev-shm-mount
  • 53f1ab41 Fix double /dev/shm mount.
  • bf551b9c Add integration test.
  • 405f57f8 Add max_container_log_size
  • b39546ce Merge pull request #815 from Random-Liu/support-cmd-for-sandbox-container
  • 46d621e4 Support Cmd for sandbox container.
  • b7aac639 Merge pull request #811 from Random-Liu/fix-volume-ownership
  • 7e0cbbe6 Merge pull request #810 from Random-Liu/revert-#804
  • c5577637 Fix empty volume ownership.
  • c9216531 Revert "Use pod ip instead of localhost in pod netns for portforward."
  • d7abb5b4 Merge pull request #807 from Random-Liu/log-task-exit-event
  • 5a1105c6 Merge pull request #808 from Random-Liu/erase-ambient-caps
  • 96cfccec Merge pull request #804 from Random-Liu/use-pod-ip-for-portforward
  • dd886bc2 Use pod ip instead of localhost in pod netns for portforward.
  • b367f300 Erase ambient capabilities.
  • de84f9c0 Merge pull request #806 from Random-Liu/update-kubernetes
  • e4e25854 Log task exit event.
  • 2b48f873 Update kubernetes to v1.11.0-beta.2
  • dfae95ec Merge pull request #802 from Random-Liu/remove-unused-files
  • db028fd2 Merge pull request #803 from Random-Liu/select-ipv4-first
  • 83e6b655 Select ipv4 first if there is one.
  • ccc5f394 Remove unused files.
  • 8bcb9a95 Merge pull request #801 from Random-Liu/fix-ctr-timeout
  • 0faff1c2 Fix ctr cri timeout.
  • ecf8d99d Merge pull request #799 from AkihiroSuda/oci-content-store
  • 09724905 vendor containerd (#2135)
  • 0a5c05bc Merge pull request #776 from Random-Liu/disable-streaming
  • 578b34f1 Merge pull request #794 from Random-Liu/panic-for-cri-start-failure
  • b870ee79 Generate fatal error when cri plugin fail to start.
  • b68fb075 Merge pull request #793 from Random-Liu/port-containerd-fix-#2364
  • 0fae42b9 Port docker resolver fix #2364.
  • 8bb978e3 Merge pull request #785 from ehazlett/containerd-vendor-bump
  • d7d22123 vendor bump
  • 40b60834 Merge pull request #789 from Random-Liu/configurable-containerd-build
  • 1892b30f Make DEPLOY_PATH configurable.
  • 52460ebf Merge pull request #788 from BSWANG/patch-1
  • 7bd86a22 Update cni.template
  • 574f9496 Merge pull request #786 from fuweid/remove_useless_check
  • e28b77c0 Remove useless error-check in createImageReference
  • 24a96426 Merge pull request #784 from cpuguy83/bump_continuity
  • fb6bc66f Bump continuity to fix copy files > 2^32 bytes
  • 450eb09a Merge pull request #782 from Random-Liu/update-containerd
  • 60b0d08a Use containerd.WithPullUnpack.
  • 4f00103c Disable restart plugin on GCE.
  • 80188e25 Update containerd to d1435e6.
  • a4ff7e99 Merge pull request #781 from Random-Liu/fix-container-runtime-monitor
  • ebed87fa Fix kube-container-runtime-monitor.
  • bafc7943 Merge pull request #758 from Random-Liu/use-crictl-in-kube-up
  • 927d3740 Merge pull request #779 from Random-Liu/logo-fix
  • b4631cf7 Use crictl installed in kube-up.sh
  • 6c7ec48d Another logo fix.
  • 6f43d493 Disable TLS streaming to work with new kubelet streaming proxy.
  • 8566a896 Merge pull request #775 from mikebrow/readme-pub-imgs
  • e10a2492 use public logos for a while vs remote github logos that are not in this repo
  • 9f8e5812 Merge pull request #647 from mikebrow/boiler-support-for-no-year
  • 8d60547e Merge pull request #769 from raravena80/patch-1
  • 67908190 Merge pull request #768 from Random-Liu/upgrade-crictl
  • f79e0171 Minor typo
  • 97634890 Upgrade cri-tools to v1.0.0-beta.1
  • 66388aef Merge pull request #766 from Random-Liu/fix-workingset-memory
  • 5d29598a Fix workingset memory calculation.
  • 7a6369de Merge pull request #763 from Random-Liu/fix-ro-sysfs
  • a5d1332e Explicitly set rw for privileged container.
  • 5f4035ae Merge pull request #754 from kolyshkin/mount
  • daeab40b os.Unmount: do not consult mountinfo, drop flags
  • 6bbbec5a Merge pull request #755 from Random-Liu/always-mount-sysfs-rw
  • 03bac618 Merge pull request #756 from Random-Liu/update-cri-tools
  • 2f370f6f Update cri-tools to fix crictl logs output.
  • 279fa853 Always mount sysfs as rw.
  • 8fec0469 Merge pull request #751 from Random-Liu/fix-official-release
  • e0d70782 Fix tarball ownership and containerd binary path for containerd.
  • 825563b2 Merge pull request #750 from Random-Liu/download-from-official-release
  • e22ebf42 Down containerd binaries from official release.
  • c3574e44 makes copyright year optional

Changes from containerd/go-cni

  • 6d7b509 Add WithAllConf, and change WithDefaultConf to only load default.
  • ef9a3f8 Merge pull request #29 from crosbymichael/prefix
  • 6aeaa2d Use network count in ifname index...
Read more