diff --git a/_data/tasks.yml b/_data/tasks.yml index 46b84cb140640..15eaa2f1e17ca 100644 --- a/_data/tasks.yml +++ b/_data/tasks.yml @@ -111,6 +111,7 @@ toc: - docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md - docs/tasks/administer-cluster/cluster-management.md - docs/tasks/administer-cluster/upgrade-1-6.md + - docs/tasks/administer-cluster/kubeadm-upgrade-1-7.md - docs/tasks/administer-cluster/namespaces.md - docs/tasks/administer-cluster/namespaces-walkthrough.md - docs/tasks/administer-cluster/dns-horizontal-autoscaling.md diff --git a/docs/setup/independent/create-cluster-kubeadm.md b/docs/setup/independent/create-cluster-kubeadm.md index dbe7346598d9a..3f0b910e88a73 100644 --- a/docs/setup/independent/create-cluster-kubeadm.md +++ b/docs/setup/independent/create-cluster-kubeadm.md @@ -386,6 +386,11 @@ kubeadm reset If you wish to start over simply run `kubeadm init` or `kubeadm join` with the appropriate arguments. +## Upgrading + +Instructions for upgrading kubeadm clusters can be found +[here](/docs/tasks/administer-cluster/kubeadm-upgrade-1-7/). + ## Explore other add-ons See the [list of add-ons](/docs/concepts/cluster-administration/addons/) to explore other add-ons, diff --git a/docs/tasks/administer-cluster/kubeadm-upgrade-1-7.md b/docs/tasks/administer-cluster/kubeadm-upgrade-1-7.md new file mode 100644 index 0000000000000..60b5a8956ac81 --- /dev/null +++ b/docs/tasks/administer-cluster/kubeadm-upgrade-1-7.md @@ -0,0 +1,87 @@ +--- +assignees: +- pipejakob +title: Upgrading kubeadm clusters from 1.6 to 1.7 +redirect_from: +- "/docs/admin/kubeadm-upgrade-1-7/" +- "/docs/admin/kubeadm-upgrade-1-7.html" +--- + +* TOC +{:toc} + +This guide is for upgrading kubeadm clusters from version 1.6.x to 1.7.x. +Upgrades are not supported for clusters lower than 1.6, which is when kubeadm +became Beta. + +**WARNING**: These instructions will **overwrite** all of the resources managed +by kubeadm (static pod manifest files, service accounts and RBAC rules in the +`kube-system` namespace, etc.), so any customizations you may have made to these +resources after cluster setup will need to be reapplied after the upgrade. The +upgrade will not disturb other static pod manifest files or objects outside the +`kube-system` namespace. + +### On the master + +1. Back up `/etc/kubernetes`. + + sudo cp -r /etc/kubernetes /root/kubernetes-backup + +2. Upgrade system packages. + + Upgrade your OS packages for kubectl, kubeadm, kubelet, and kubernetes-cni. + + a. On Debian, this can be accomplished with: + + sudo apt-get update + sudo apt-get upgrade + + b. On CentOS/Fedora, you would instead run: + + sudo yum update + +3. Restart kubelet. + + sudo systemctl restart kubelet + +4. Delete the `kube-proxy` DaemonSet. + + Although most components are automatically upgraded by the next step, + `kube-proxy` currently needs to be manually deleted so it can be recreated at + the correct version: + + sudo KUBECONFIG=/etc/kubernetes/admin.conf kubectl delete daemonset kube-proxy -n kube-system + +5. Perform kubeadm upgrade. + + sudo kubeadm init --skip-preflight-checks --kubernetes-version + + For instance, if you want to upgrade to `1.7.0`, you would run: + + sudo kubeadm init --skip-preflight-checks --kubernetes-version v1.7.0 + +6. Upgrade CNI provider. + + Your CNI provider might have its own upgrade instructions to follow now. + Check the [addons](/docs/concepts/cluster-administration/addons/) page to + find your CNI provider and see if there are additional upgrade steps + necessary. + +### On each node + +1. Upgrade system packages. + + Upgrade your OS packages for kubectl, kubeadm, kubelet, and kubernetes-cni. + + a. On Debian, this can be accomplished with: + + sudo apt-get update + sudo apt-get upgrade + + b. On CentOS/Fedora, you would instead run: + + sudo yum update + +2. Restart kubelet. + + sudo systemctl restart kubelet