From a94b2bfee9e3e8238beeb899206b3431607bee69 Mon Sep 17 00:00:00 2001 From: emanic Date: Mon, 13 Nov 2017 21:00:56 -0800 Subject: [PATCH] Clarifies some aspects of the kubeadm install (#5883) --- .../independent/create-cluster-kubeadm.md | 20 +++++++++++++++++-- docs/setup/independent/install-kubeadm.md | 13 +++++------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/docs/setup/independent/create-cluster-kubeadm.md b/docs/setup/independent/create-cluster-kubeadm.md index 3ef70ec6ad..5590d16cbb 100644 --- a/docs/setup/independent/create-cluster-kubeadm.md +++ b/docs/setup/independent/create-cluster-kubeadm.md @@ -62,8 +62,9 @@ cloud providers is difficult. {% capture prerequisites %} 1. One or more machines running Ubuntu 16.04+, CentOS 7 or HypriotOS v1.0.1+ -1. 1GB or more of RAM per machine (any less will leave little room for your +1. 2 GB or more of RAM per machine (any less will leave little room for your apps) +1. 2 CPUs or more on the master 1. Full network connectivity between all machines in the cluster (public or private network is fine) {% endcapture %} @@ -232,7 +233,7 @@ Please select one of the tabs to see installation instructions for the respectiv {% capture calico %} -The official Calico guide is [here](http://docs.projectcalico.org/latest/getting-started/kubernetes/installation/hosted/kubeadm/). +Refer to the Calico documentation for a [kubeadm quickstart](https://docs.projectcalico.org/latest/getting-started/kubernetes/), a [kubeadm installation guide](http://docs.projectcalico.org/latest/getting-started/kubernetes/installation/hosted/kubeadm/), and other resources. **Note:** @@ -266,6 +267,9 @@ kubectl apply -f https://raw.githubusercontent.com/projectcalico/canal/master/k8 - For flannel to work correctly, `--pod-network-cidr=10.244.0.0/16` has to be passed to `kubeadm init`. - flannel works on `amd64`, `arm`, `arm64` and `ppc64le`, but for it to work on an other platform than `amd64` you have to manually download the manifest and replace `amd64` occurences with your chosen platform. + - Set `/proc/sys/net/bridge/bridge-nf-call-iptables` to `1` by running `sysctl net.bridge.bridge-nf-call-iptables=1` +to pass bridged IPv4 traffic to iptables' chains. This is a requirement for some CNI plugins to work, for more information +please see [here](https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/#network-plugin-requirements). ```shell kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.0/Documentation/kube-flannel.yml @@ -274,6 +278,10 @@ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.0/Documen {% capture kube-router %} +Set `/proc/sys/net/bridge/bridge-nf-call-iptables` to `1` by running `sysctl net.bridge.bridge-nf-call-iptables=1` +to pass bridged IPv4 traffic to iptables' chains. This is a requirement for some CNI plugins to work, for more information +please see [here](https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/#network-plugin-requirements). + Kube-router relies on kube-controll-manager to allocate pod CIDR for the nodes. Therefore, use `kubeadm init` with the `--pod-network-cidr` flag. Kube-router provides pod networking, network policy, and high-performing IP Virtual Server(IPVS)/Linux Virtual Server(LVS) based service proxy. @@ -284,6 +292,10 @@ For information on setting up Kubernetes cluster with Kube-router using kubeadm {% capture romana %} +Set `/proc/sys/net/bridge/bridge-nf-call-iptables` to `1` by running `sysctl net.bridge.bridge-nf-call-iptables=1` +to pass bridged IPv4 traffic to iptables' chains. This is a requirement for some CNI plugins to work, for more information +please see [here](https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/#network-plugin-requirements). + The official Romana set-up guide is [here](https://github.com/romana/romana/tree/master/containerize#using-kubeadm). **Note:** Romana works on `amd64` only. @@ -295,6 +307,10 @@ kubectl apply -f https://raw.githubusercontent.com/romana/romana/master/containe {% capture weave_net %} +Set `/proc/sys/net/bridge/bridge-nf-call-iptables` to `1` by running `sysctl net.bridge.bridge-nf-call-iptables=1` +to pass bridged IPv4 traffic to iptables' chains. This is a requirement for some CNI plugins to work, for more information +please see [here](https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/#network-plugin-requirements). + The official Weave Net set-up guide is [here](https://www.weave.works/docs/net/latest/kube-addon/). **Note:** Weave Net works on `amd64`, `arm` and `arm64` without any extra action required. diff --git a/docs/setup/independent/install-kubeadm.md b/docs/setup/independent/install-kubeadm.md index f84d966ef2..a85fbd1f43 100644 --- a/docs/setup/independent/install-kubeadm.md +++ b/docs/setup/independent/install-kubeadm.md @@ -11,14 +11,12 @@ This page shows how to use install kubeadm. {% capture prerequisites %} * One or more machines running Ubuntu 16.04+, Debian 9, CentOS 7, RHEL 7, Fedora 25/26 (best-effort) or HypriotOS v1.0.1+ -* 1GB or more of RAM per machine (any less will leave little room for your apps) +* 2 GB or more of RAM per machine (any less will leave little room for your apps) +* 2 CPUs or more * Full network connectivity between all machines in the cluster (public or private network is fine) * Unique hostname, MAC address, and product_uuid for every node * Certain ports are open on your machines. See the section below for more details -* Swap disabled. You must disable swap in order for the kubelet to work properly. -* Set `/proc/sys/net/bridge/bridge-nf-call-iptables` to `1` by running `sysctl net.bridge.bridge-nf-call-iptables=1` -to pass bridged IPv4 traffic to iptables' chains. This is a requirement for CNI plugins to work, for more information -please see [here](https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/#network-plugin-requirements). +* Swap disabled. You must disable swap in order for the kubelet to work properly. {% endcapture %} @@ -75,6 +73,8 @@ On each of your machines, install Docker. Version v1.12 is recommended, but v1.11, v1.13 and 17.03 are known to work as well. Versions 17.06+ _might work_, but have not yet been tested and verified by the Kubernetes node team. +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. + You can use the following commands to install Docker on your system: {% capture docker_ubuntu %} @@ -151,9 +151,6 @@ server version. For example, kubelets running 1.7.0 should be fully compatible w For more information on version skews, please read our [version skew policy](/docs/setup/independent/create-cluster-kubeadm/#version-skew-policy). -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. - {% capture ubuntu %} ```bash