Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add CRI installation instructions page
Added cri-installation page with CRI installation instructions Referenced it from kubeadm-init and install-kubeadm pages.
- Loading branch information
Showing
3 changed files
with
218 additions
and
48 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,205 @@ | ||
--- | ||
reviewers: | ||
- vincepri | ||
- bart0sh | ||
title: CRI installation | ||
content_template: templates/concept | ||
weight: 100 | ||
--- | ||
{{% capture overview %}} | ||
Since v1.6.0, Kubernetes has enabled the use of CRI, Container Runtime Interface, by default. | ||
This page contains installation instruction for various runtimes. | ||
|
||
{{% /capture %}} | ||
|
||
{{% capture body %}} | ||
|
||
### Docker | ||
|
||
On each of your machines, install Docker. | ||
Version 18.06 is recommended, but 1.11, 1.12, 1.13 and 17.03 are known to work as well. | ||
Keep track of the latest verified Docker version in the Kubernetes release notes. | ||
|
||
Please proceed with executing the following commands based on your OS as root. You may become the root user by executing `sudo -i` after SSH-ing to each host. | ||
|
||
Use the following commands to install Docker on your system: | ||
|
||
{{< tabs name="tab-cri-docker-installation" >}} | ||
{{< tab name="Ubuntu 16.04" codelang="bash" >}} | ||
# Install Docker from Ubuntu's repositories: | ||
apt-get update | ||
apt-get install -y docker.io | ||
|
||
# or install Docker CE 18.06 from Docker's repositories for Ubuntu or Debian: | ||
|
||
## Install prerequisites. | ||
apt-get update && apt-get install apt-transport-https ca-certificates curl software-properties-common | ||
|
||
## Download GPG key. | ||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - | ||
|
||
## Add docker apt repository. | ||
add-apt-repository \ | ||
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \ | ||
$(lsb_release -cs) \ | ||
stable" | ||
|
||
## Install docker. | ||
apt-get update && apt-get install docker-ce=18.06.0~ce~3-0~ubuntu | ||
|
||
# Setup daemon. | ||
cat > /etc/docker/daemon.json <<EOF | ||
{ | ||
"exec-opts": ["native.cgroupdriver=systemd"], | ||
"log-driver": "json-file", | ||
"log-opts": { | ||
"max-size": "100m" | ||
}, | ||
"storage-driver": "overlay2" | ||
} | ||
EOF | ||
|
||
mkdir -p /etc/systemd/system/docker.service.d | ||
|
||
# Restart docker. | ||
systemctl daemon-reload | ||
systemctl restart docker | ||
{{< /tab >}} | ||
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}} | ||
|
||
# Install Docker from CentOS/RHEL repository: | ||
yum install -y docker | ||
|
||
# or install Docker CE 18.06 from Docker's CentOS repositories: | ||
|
||
## Install prerequisites. | ||
yum install yum-utils device-mapper-persistent-data lvm2 | ||
|
||
## Add docker repository. | ||
yum-config-manager \ | ||
--add-repo \ | ||
https://download.docker.com/linux/centos/docker-ce.repo | ||
|
||
## Install docker. | ||
yum update && yum install docker-ce-18.06.1.ce | ||
|
||
# Setup daemon. | ||
cat > /etc/docker/daemon.json <<EOF | ||
{ | ||
"exec-opts": ["native.cgroupdriver=systemd"], | ||
"log-driver": "json-file", | ||
"log-opts": { | ||
"max-size": "100m" | ||
}, | ||
"storage-driver": "overlay2", | ||
"storage-opts": [ | ||
"overlay2.override_kernel_check=true" | ||
] | ||
} | ||
EOF | ||
|
||
mkdir -p /etc/systemd/system/docker.service.d | ||
|
||
# Restart docker. | ||
systemctl daemon-reload | ||
systemctl restart docker | ||
{{< /tab >}} | ||
{{< /tabs >}} | ||
|
||
Refer to the [official Docker installation guides](https://docs.docker.com/engine/installation/) | ||
for more information. | ||
|
||
### CRI-O | ||
|
||
This section contains the necessary steps to install `CRI-O` as CRI runtime. | ||
|
||
{{< tabs name="tab-cri-cri-o-installation" >}} | ||
{{< tab name="Ubuntu 16.04" codelang="bash" >}} | ||
|
||
#### Prerequisites | ||
apt-get update | ||
apt-get install software-properties-common | ||
|
||
add-apt-repository ppa:projectatomic/ppa | ||
apt-get update | ||
|
||
#### Install CRI-O | ||
apt-get install cri-o-1.11 | ||
|
||
{{< /tab >}} | ||
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}} | ||
|
||
#### Prerequisites | ||
yum-config-manager --add-repo=https://cbs.centos.org/repos/paas7-crio-311-candidate/x86_64/os/ | ||
|
||
#### Install CRI-O | ||
yum install --nogpgcheck cri-o | ||
|
||
{{< /tab >}} | ||
{{< /tabs >}} | ||
|
||
#### Start CRI-O | ||
|
||
``` | ||
systemctl start crio | ||
``` | ||
|
||
Refer to the [CRI-O installation guide](https://github.com/kubernetes-sigs/cri-o#getting-started) | ||
for more information. | ||
|
||
### Containerd | ||
|
||
This section contains the necessary steps to use `containerd` as CRI runtime. | ||
|
||
#### Prerequisites | ||
|
||
```shell | ||
modprobe overlay | ||
modprobe br_netfilter | ||
|
||
# Setup required sysctl params, these persist across reboots. | ||
cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF | ||
net.bridge.bridge-nf-call-iptables = 1 | ||
net.ipv4.ip_forward = 1 | ||
net.bridge.bridge-nf-call-ip6tables = 1 | ||
EOF | ||
|
||
sysctl --system | ||
``` | ||
|
||
{{< tabs name="tab-cri-containerd-installation" >}} | ||
{{< tab name="Ubuntu 16.04+" codelang="bash" >}} | ||
apt-get install -y libseccomp2 | ||
{{< /tab >}} | ||
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}} | ||
yum install -y libseccomp | ||
{{< /tab >}} | ||
{{< /tabs >}} | ||
|
||
#### Install containerd | ||
|
||
[Containerd releases](https://github.com/containerd/containerd/releases) are published regularly, the values below are hardcoded to the latest version available at the time of writing. Please check for newer versions and hashes [here](https://storage.googleapis.com/cri-containerd-release). | ||
|
||
```shell | ||
# Export required environment variables. | ||
export CONTAINERD_VERSION="1.1.2" | ||
export CONTAINERD_SHA256="d4ed54891e90a5d1a45e3e96464e2e8a4770cd380c21285ef5c9895c40549218" | ||
|
||
# Download containerd tar. | ||
wget https://storage.googleapis.com/cri-containerd-release/cri-containerd-${CONTAINERD_VERSION}.linux-amd64.tar.gz | ||
|
||
# Check hash. | ||
echo "${CONTAINERD_SHA256} cri-containerd-${CONTAINERD_VERSION}.linux-amd64.tar.gz" | sha256sum --check - | ||
|
||
# Unpack. | ||
tar --no-overwrite-dir -C / -xzf cri-containerd-${CONTAINERD_VERSION}.linux-amd64.tar.gz | ||
|
||
# Start containerd. | ||
systemctl start containerd | ||
``` | ||
|
||
### Other CRI runtimes: rktlet and frakti | ||
|
||
Refer to the [Frakti QuickStart guide](https://github.com/kubernetes/frakti#quickstart) and [Rktlet Getting Started guide](https://github.com/kubernetes-incubator/rktlet/blob/master/docs/getting-started-guide.md) for more information. | ||
|
||
{{% /capture %}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters