Skip to content

Commit

Permalink
Initial draft of upgrade guide for kubeadm clusters.
Browse files Browse the repository at this point in the history
In-place upgrades are supported between 1.6 and 1.7 releases. Rollback
instructions to come in a separate commit.

Fixes kubernetes/kubeadm#278
  • Loading branch information
pipejakob committed Jun 22, 2017
1 parent ccd2b46 commit 5946f21
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 0 deletions.
1 change: 1 addition & 0 deletions _data/tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 5 additions & 0 deletions docs/setup/independent/create-cluster-kubeadm.md
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
83 changes: 83 additions & 0 deletions docs/tasks/administer-cluster/kubeadm-upgrade-1-7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
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. 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

3. 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

4. Perform kubeadm upgrade.

sudo kubeadm init --skip-preflight-checks --kubernetes-version <DESIRED_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

5. 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

0 comments on commit 5946f21

Please sign in to comment.