diff --git a/content/en/docs/setup/independent/create-cluster-kubeadm.md b/content/en/docs/setup/independent/create-cluster-kubeadm.md index c69ec051326a1..6e53c077410b3 100644 --- a/content/en/docs/setup/independent/create-cluster-kubeadm.md +++ b/content/en/docs/setup/independent/create-cluster-kubeadm.md @@ -117,6 +117,10 @@ communicates with). be passed to kubeadm initialization. Depending on which third-party provider you choose, you might need to set the `--pod-network-cidr` to a provider-specific value. See [Installing a pod network add-on](#pod-network). +1. (Optional) Since version 1.14, kubeadm will try to detect the container runtime on Linux +by using a list of well known domain socket paths. To use different container runtime or +if there are more than one installed on the provisioned node, specify the `--cri-socket` +argument to `kubeadm init`. See [Installing runtime](/docs/setup/independent/install-kubeadm/#installing-runtime). 1. (Optional) Unless otherwise specified, kubeadm uses the network interface associated with the default gateway to advertise the master's IP. To use a different network interface, specify the `--apiserver-advertise-address=` argument diff --git a/content/en/docs/setup/independent/install-kubeadm.md b/content/en/docs/setup/independent/install-kubeadm.md index cbf1c8ebb483e..8e9ec9682e5c9 100644 --- a/content/en/docs/setup/independent/install-kubeadm.md +++ b/content/en/docs/setup/independent/install-kubeadm.md @@ -79,10 +79,28 @@ The pod network plugin you use (see below) may also require certain ports to be open. Since this differs with each pod network plugin, please see the documentation for the plugins about what port(s) those need. -## Installing runtime +## Installing runtime {#installing-runtime} Since v1.6.0, Kubernetes has enabled the use of CRI, Container Runtime Interface, by default. -The container runtime used by default is Docker, which is enabled through the built-in + +Since v1.14.0, kubeadm will try to automatically detect the container runtime on Linux nodes +by scanning through a list of well known domain sockets. The detectable runtimes and the +socket paths, that are used, can be found in the table below. + +| Runtime | Domain Socket | +|------------|----------------------------------| +| Docker | /var/run/docker.sock | +| containerd | /run/containerd/containerd.sock | +| CRI-O | /var/run/crio/crio.sock | + +If both Docker and containerd are detected together, Docker takes precedence. This is +needed, because Docker 18.09 ships with containerd and both are detectable. +If any other two or more runtimes are detected, kubeadm will exit with an appropriate +error message. + +On non-Linux nodes the container runtime used by default is Docker. + +If the container runtime of choice is Docker, it is used through the built-in `dockershim` CRI implementation inside of the `kubelet`. Other CRI-based runtimes include: