Go to file
Lantao Liu dcb22bebae
Merge pull request #372 from Random-Liu/add-container-log-path
Add the missing container log path in container status.
2017-10-30 16:57:10 +01:00
cmd/cri-containerd Add stack dump. 2017-10-27 22:45:38 +00:00
contrib Remove the oom score in systemd unit. cri-containerd sets it by itself. 2017-10-12 17:32:20 +00:00
docs Add guide for installation from release tarball 2017-10-05 18:44:23 +00:00
hack Add image load. 2017-10-27 21:51:04 +00:00
integration Add integration test for image load 2017-10-27 21:51:04 +00:00
pkg Add the missing container log path in container status. 2017-10-30 06:03:52 +00:00
test/e2e_node Do not log container output in error log. 2017-10-28 02:16:43 +00:00
vendor Update cobra and pflag 2017-10-27 06:42:18 +00:00
.gitignore initial makefile (#7) 2017-04-18 21:17:14 -05:00
.travis.yml Add staging tar for node e2e. 2017-10-07 04:45:10 +00:00
code-of-conduct.md Fix Typo in Events Code of Conduct 2017-08-15 19:37:07 +05:30
CONTRIBUTING.md Use vndr instead of godep. 2017-08-04 02:41:26 +00:00
gcp-secret.json.enc Upload node e2e test log to gcs 2017-09-06 23:09:50 +00:00
LICENSE Initial commit 2017-04-13 15:20:25 -07:00
Makefile Add image load. 2017-10-27 21:51:04 +00:00
OWNERS Add initial documents. 2017-04-14 15:08:49 -07:00
README.md Add guide for installation from release tarball 2017-10-05 18:44:23 +00:00
vendor.conf Update cobra and pflag 2017-10-27 06:42:18 +00:00

cri-containerd

Build Status Go Report Card

cri-containerd is a containerd based implementation of Kubernetes container runtime interface (CRI).

With it, you could run Kubernetes using containerd as the container runtime. cri-containerd

Current Status

cri-containerd is in alpha:

Installing with Ansible and Kubeadm

For a multi node cluster installer and bring up steps using ansible and kubeadm refer here.

Custom Installation

For non ansible users, you can download the cri-containerd release tarball and deploy kubernetes cluster using kubeadm as described here.

Getting Started for Developers

Binary Dependencies and Specifications

The current release of cri-containerd has the following dependencies:

See versions of these dependencies cri-containerd is tested with.

As containerd and runc move to their respective general availability releases, we will do our best to rebase/retest cri-containerd with these releases on a weekly/monthly basis. Similarly, given that cri-containerd uses the Open Container Initiative (OCI) image and runtime specifications, we will also do our best to update cri-containerd to the latest releases of these specifications as appropriate.

Install Dependencies

  1. Install development libraries:
  • libseccomp development library. Required by cri-containerd and runc seccomp support. libseccomp-dev (Ubuntu, Debian) / libseccomp-devel (Fedora, CentOS, RHEL). On releases of Ubuntu <=Trusty and Debian <=jessie a backport version of libsecomp-dev is required. See travis.yml for an example on trusty.
  • libapparmor development library. Required by cri-containerd and runc apparmor support. To use apparmor on Debian, Ubuntu, and related distributions the installation of libapparmor-dev is required.
  • btrfs development library. Required by containerd btrfs support. btrfs-tools(Ubuntu, Debian) / btrfs-progs-devel(Fedora, CentOS, RHEL)
  1. Install other dependencies:
  • nsenter: Required by CNI and portforward.
  • socat: Required by portforward.
  1. Install and setup a go 1.8.x development environment.
  2. Make a local clone of this repository.
  3. Install binary dependencies by running the following command from your cloned cri-containerd/ project directory:
# Note: install.deps installs the above mentioned runc, containerd, and CNI
# binary dependencies. install.deps is only provided for general use and ease of
# testing. To customize `runc` and `containerd` build tags and/or to configure
# `cni`, please follow instructions in their documents.
make install.deps

Build and Install cri-containerd

To build and install cri-containerd enter the following commands from your cri-containerd project directory:

make
sudo make install

Build Tags

cri-containerd supports optional build tags for compiling support of various features. To add build tags to the make option the BUILDTAGS variable must be set.

make BUILD_TAGS='seccomp apparmor'
Build Tag Feature Dependency
seccomp syscall filtering libseccomp development library
selinux selinux process and mount labeling
apparmor apparmor profile support libapparmor development library

Validate Your cri-containerd Setup

Another Kubernetes incubator project called cri-tools includes programs for exercising CRI implementations such as cri-containerd. More importantly, cri-tools includes the program critest which is used for running CRI Validation Testing.

Run the CRI Validation test to validate your installation of cri-containerd:

make test-cri

Running a Kubernetes local cluster

If you already have a working development environment for supported Kubernetes version, you can try cri-containerd in a local cluster:

  1. Start containerd as root in a first terminal:
sudo containerd
  1. Start cri-containerd as root in a second terminal:
sudo cri-containerd -v 2 --alsologtostderr
  1. From the Kubernetes project directory startup a local cluster using cri-containerd:
CONTAINER_RUNTIME=remote CONTAINER_RUNTIME_ENDPOINT='/var/run/cri-containerd.sock' ./hack/local-up-cluster.sh

Test

See here for information about test.

Documentation

See here for additional documentation.

Contributing

Interested in contributing? Check out the documentation.

Kubernetes Incubator

This is a Kubernetes Incubator project. The project was established 2017/4/13. The incubator team for the project is:

For more information about sig-node and the cri-containerd project:

Code of Conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.