Update kubeadm install doc for v1.8 (#5676)

This commit is contained in:
Lucas Käldström
2017-09-28 23:16:54 +03:00
committed by Steve Perry
parent 53bd0588bd
commit 561f07eb44
+88 -49
View File
@@ -10,11 +10,12 @@ This page shows how to use install kubeadm.
{% capture prerequisites %} {% capture prerequisites %}
* One or more machines running Ubuntu 16.04+, CentOS 7 or HypriotOS v1.0.1+ * 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) * 1GB or more of RAM per machine (any less will leave little room for your apps)
* Full network connectivity between all machines in the cluster (public or private network is fine) * Full network connectivity between all machines in the cluster (public or private network is fine)
* Unique MAC address and product_uuid for every node * Unique MAC address and product_uuid for every node
* Certain ports are open on your machines. See the section below for more details * 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.
{% endcapture %} {% endcapture %}
@@ -55,74 +56,112 @@ documentation for the plugins about what port(s) those need.
## Installing Docker ## Installing Docker
On each of your machines, install Docker. On each of your machines, install Docker.
Version 1.12 is recommended, but v1.10 and v1.11 are known to work as well. Version v1.12 is recommended, but v1.11, v1.13 and 17.03 are known to work as well.
Versions 1.13 and 17.03+ have not yet been tested and verified by the Kubernetes node team. Versions 17.06+ _might work_, but have not yet been tested and verified by the Kubernetes node team.
For installation instructions, see
[Install Docker](https://docs.docker.com/engine/installation/).
## Installing kubectl You can use the following commands to install Docker on your system:
On each of your machines, {% capture docker_ubuntu %}
[install kubectl](/docs/tasks/tools/install-kubectl/).
You only need kubectl on the master and/or your workstation, but it can be
useful to have on the other nodes as well.
## Installing kubelet and kubeadm Install Docker from Ubuntu's repositories:
```bash
apt-get update
apt-get install -y docker.io
```
or install Docker CE 17.03 from Docker's repositories for Ubuntu or Debian:
```bash
apt-get update && apt-get install -y curl apt-transport-https
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/docker.list
deb https://download.docker.com/linux/$(lsb_release -si | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable
EOF
apt-get update && apt-get install -y docker-ce=$(apt-cache madison docker-ce | grep 17.03 | head -1 | awk '{print $3}')
```
{% endcapture %}
{% capture docker_centos %}
Install Docker using your operating system's bundled package:
```bash
yum install -y docker
systemctl enable docker && systemctl start docker
```
{% endcapture %}
{% assign tab_set_name = "docker_install" %}
{% assign tab_names = "Ubuntu, Debian or HypriotOS;CentOS, RHEL or Fedora" | split: ';' | compact %}
{% assign tab_contents = site.emptyArray | push: docker_ubuntu | push: docker_centos %}
{% include tabs.md %}
## Installing kubeadm, kubelet and kubectl
You will install these packages on all of your machines: You will install these packages on all of your machines:
* `kubeadm`: the command to bootstrap the cluster.
* `kubelet`: the component that runs on all of the machines in your cluster * `kubelet`: the component that runs on all of the machines in your cluster
and does things like starting pods and containers. and does things like starting pods and containers.
* `kubeadm`: the command to bootstrap the cluster. * `kubectl`: the command line util to talk to your cluster.
**Note:** If you already have kubeadm installed, you should do a `apt-get update && Please proceed with executing the following commands based on your OS as `root`.
apt-get upgrade` or `yum update` to get the latest version of kubeadm. See the You may become the `root` user by executing `sudo -i` after SSH-ing to each host.
kubeadm release notes if you want to read about the different [kubeadm
releases](https://github.com/kubernetes/kubeadm/blob/master/CHANGELOG.md).
For each machine: {% capture ubuntu %}
* SSH into the machine and become root if you are not already (for example, ```bash
run `sudo -i`). apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
```
* If the machine is running Ubuntu or HypriotOS, run: {% endcapture %}
``` bash {% capture centos %}
apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm
```
* If the machine is running CentOS, run: ```bash
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
```
``` bash **Note:** Disabling SELinux by running `setenforce 0` is required to allow
cat <<EOF > /etc/yum.repos.d/kubernetes.repo containers to access the host filesystem, which is required for the `kubeadm init`
[kubernetes] process to complete successfully. You have to do this until SELinux support
name=Kubernetes is improved.
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1 {% endcapture %}
gpgcheck=1
repo_gpgcheck=1 {% assign tab_set_name = "k8s_install" %}
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg {% assign tab_names = "Ubuntu, Debian or HypriotOS;CentOS, RHEL or Fedora" | split: ';' | compact %}
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg {% assign tab_contents = site.emptyArray | push: ubuntu | push: centos %}
EOF
setenforce 0 {% include tabs.md %}
yum install -y kubelet kubeadm
systemctl enable kubelet && systemctl start kubelet
```
The kubelet is now restarting every few seconds, as it waits in a crashloop for The kubelet is now restarting every few seconds, as it waits in a crashloop for
kubeadm to tell it what to do. kubeadm to tell it what to do.
**Note:** Disabling SELinux by running `setenforce 0` is required to allow
containers to access the host filesystem, which is required by pod networks for
example. You have to do this until SELinux support is improved in the kubelet.
{% endcapture %} {% endcapture %}
{% capture whatsnext %} {% capture whatsnext %}