Introduction
Upgrade versi Kubernetes merupakan langkah penting untuk memastikan cluster tetap berada pada versi yang didukung, aman, dan stabil. Setiap rilis baru membawa perbaikan bug, peningkatan performa, patch keamanan, serta fitur baru yang dapat meningkatkan keandalan sistem. Selain itu, penggunaan versi lama berisiko menimbulkan masalah kompatibilitas dengan komponen ekosistem Kubernetes seperti kubelet, CNI, CSI, dan berbagai addon. Oleh karena itu, proses upgrade versi perlu dilakukan secara terencana dengan memperhatikan kompatibilitas, perubahan API, serta strategi pelaksanaan agar layanan tetap berjalan optimal dengan gangguan seminimal mungkin.
Sebelum kita upgrade, kita bisa cek CHANGELOG pada masing-masing versi dari kubernetes https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG
Upgrade from 1.31 to 1.32
Upgrade kubeadm
Ubah versi pada repository menjadi 1.32 pada semua master (Saya menggunakan OS ubuntu 24.04)
deb [signed-by=/etc/apt/keyrings/k8s.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /Setelah itu update repo dan check latest versi kubeadm
sudo apt update
sudo apt-cache madison kubeadm
Kita akan menggunakan versi terbaru dari versi 1.32. (Latest version adalah 11 dan dilakukan pada semua master)
sudo apt-mark unhold kubeadm
sudo apt-get install -y kubeadm='1.32.11-*'
sudo apt-mark hold kubeadmUpgrade Cluster
Setelah kita install kubeadm ke versi 1.32.11, caranya sama seperti yang seperti sebelumnya. Upgrade disalah satu master, kemudian baru apply pada existing node master
Check upgrade plan (pada master1)
sudo kubeadm upgrade plan
Kemudian apply ke versi 1.32.11 (semua master keculai master1)
sudo kubeadm upgrade apply v1.32.11
Setelah itu kita upgrade di master lainnya
sudo kubeadm upgrade node
Upgrade Kubectl & Kubelet
Kita akan upgrade kubelet dan kubectl disemua master dan worker
Upgrade kubelet dan kubectl
sudo apt-mark unhold kubelet kubectl
sudo apt-get install -y kubelet='1.32.11-*' kubectl='1.32.11-*'
sudo apt-mark hold kubelet kubectlrestart daemon dan service kubelet pada semua nodes (master and worker)
sudo systemctl daemon-reload
sudo systemctl restart kubeletCheck versi dari cluster
kubectl get cm kubeadm-config -n kube-system -o yaml | grep kubernetesVersion