2023-12-13 21:45:07 +01:00

2.1 KiB

Requirements:

[0] pacman -S python-kubernetes
https://stackoverflow.com/questions/60866755/ansible-k8s-module-failed-to-import-the-required-python-library-openshift-on

Order:

  • Update repositories [-3]
  • Check available versions to upgrade to and update the config accordingly [-2]
  • Check if applied CRD work on the desired Kubernetes version [-1]
  • Backup (if available, as per the moment manual since it's not a main concern) [0]
  • Upgrade Kubeadm [1]
  • Call upgrade [2]
  • Drain node [3]
  • Update kubelet/kubectl versions [4]
  • Reboot services [5]
  • Upgrade system cause one needs it from time to type [6]
  • Uncordon node [7]

----- Done with all hosts

  • Upgrade CRD (this will not be covered on this script, so you do you)
[-3]
https://kubernetes.io/blog/2023/08/15/pkgs-k8s-io-introduction/

[-2]
apt update
apt-cache madison kubeadm  | head -n 5

[-1] (This is mine. comparing to kubernetes 1.28.5)
- [x] Calico v3.26.3 (v3.26.4 available)
- [x] Istio 1.18.2 (v1.20 available)
- [?] MetalLb v0.13.10 (v0.13.12 available) *Didn't find anything regarding the matter, so going to assume yes and see what happens. 
- [x] CertManager v1.13.1 (v1.13.3 available)

[0]
Proxmox stuff/VMs

[1]
apt-mark unhold kubeadm && \
apt-get update && apt-get install -y kubeadm='1.28.x-*' && \
apt-mark hold kubeadm

[2]
sudo kubeadm upgrade node

[3]
kubectl drain $NODE

[4]
apt-mark unhold kubelet kubectl && \
apt-get update && apt-get install -y kubelet='1.28.x-*' kubectl='1.28.x-*' && \
apt-mark hold kubelet kubectl

[5]
sudo systemctl daemon-reload
sudo systemctl restart kubelet

[6]
usual apt-get update > upgrade > reboot 

[7]
kubectl uncordon <node-to-uncordon>