From cd859cc9c45b20781839afca4518a19882281942 Mon Sep 17 00:00:00 2001 From: Wilfried OLLIVIER Date: Thu, 5 Aug 2021 14:44:58 +0200 Subject: [PATCH] Add k8s upgrade --- src/SUMMARY.md | 1 + src/ops/k8s/upgrade.md | 63 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 src/ops/k8s/upgrade.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index bafc855..afb15ca 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -32,6 +32,7 @@ - [Ops](./ops/main.md) - [k8s](./ops/k8s/main.md) - [kubectl](./ops/k8s/kubectl.md) + - [upgrade](./ops/k8s/upgrade.md) - [macOS](./ops/macos/main.md) - [iterm](./ops/macos/iterm.md) - [GNU/Linux](./ops/gnulinux/main.md) diff --git a/src/ops/k8s/upgrade.md b/src/ops/k8s/upgrade.md new file mode 100644 index 0000000..0876332 --- /dev/null +++ b/src/ops/k8s/upgrade.md @@ -0,0 +1,63 @@ +# Cluster Upgrade + +## Versions + +`vMajor.Minor.Patch` semantic versioning + +K8S compatibility is as follow : current and n-2 version are supported. + +**Always upgrade minor to minor releases**. + +## kubeadm + +### Check latest/upgradable version + +```shell +kubeadm upgrade plan +``` + +## Master node upgrade + +### Drain and mark it at Unschedulable + +```shell +kubectl drain master +``` + +`kubectl get nodes` to verify that master node is unschedulable + +### kubeadm update + +```shell +apt install kubeadm=X.Y.Z-00 +``` + +`kubeadm version` to ensure version number + +### Node update + +```shell +kubeadm upgrade apply vX.Y.Z +``` + +`kubectl version` to validate + +### Update kubelet + +```shell +apt install kubelet=X.Y.Z-00 +``` + +`kubectl get nodes` to validate + +### Mark master node as schedulable + +```shell +kubectl uncordon master +``` + +## Worker nodes upgrade + +Repeat the same actions done on master for each worker node + +🎉