64 lines
900 B
Markdown
64 lines
900 B
Markdown
|
# 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
|
||
|
|
||
|
🎉
|