Ana içeriğe atla
Kubernetes sürümünü yükseltirken, mevcut ve hedef sürümler arasındaki her bir küçük sürümün (örneğin, 1.25’ten 1.26’ya, sonra 1.26’dan 1.27’ye vb.) ardışık olarak yükseltilmesi gerekmektedir.
Kubernetes: v1.18 → Mevcut versiyon, v1.30 → Hedeflenen versiyon

Gerekli Dosyalar

Kubernetes Dosyaları

v1.18 - v1.30 → Kubectl, kubeadm, kubelet dosyalarıİndir

Kubernetes CNI

Kubernetes 1.18’den 1.19’e geçerken bir kere kurmak yeterlidir. 1.19 ve üstü versiyonlarda kurulmasına gerek yoktur.

Containerd

Kubernetes 1.24 versiyonuna geçerken containerd kullanımına geçilmeli. Containerd 1.6+ üstü olmalı ve docker kaldırılmalıdır.İndir

Versiyon Yükseltme

Versiyon yükseltme işlemi “1.18-1.19”, “1.20-1.23” ve “1.24-1.30” bölümlerinden oluşmaktadır. Her bir bölümde, versiyon yükseltme süreci ve olası hataların çözümleri ele alınmaktadır.

1.1) 1.18’ten 1.19’a yükseltme

Çok Önemli1.18’den 1.19’a geçişte olası flannel sorunu çıkabilmekte. Aşağıdaki komut ile node durumunu kontrol ediniz.
kubectl get nodes
Node durumu NotReady ise aşağıdaki komut ile ilgili sunucudaki loglara bakınız.
journalctl -xeu kubelet
Çözüm yolu: Herhangi bir (master veya worker) sunucu üzerinden flannel dosyasını, yükseltme yaptığınız sunucuya scp komutu ile dosyayı taşımak.
scp /opt/cni/bin/flannel <USERNAME>@<NODE_IP>:/opt/cni/bin
Node durumunu kontrol ettiğinizde “READY” olduğunu görmelisiniz.

Control Plane (Master) Node için Yükseltme

Master(control-plane) olan sunucuya geçiş yapınız ve aşağıdaki adımları uygulayınız.
1

Mevcut versiyonları kontrol edin

Yükseltme işlemine başlamadan önce kubeadm, kubelet ve kubectl versiyonlarını kontrol edin:
kubeadm version
kubelet --version
kubectl version --client
2

Kubeadm versiyonunu yükseltin

Kubeadm için paket sabitlemesini kaldırın:
sudo apt-mark unhold kubeadm
fss.apinizer.com adresi üzerinden indirdiğiniz dosyayı çıkarttığınız klasöre gidin:
cd 1.19.3
İçerisinde bulunan .deb uzantılı kubeadm dosyasını yükleyin:
sudo dpkg -i kubeadm_1.19.3-00_amd64.deb
sudo apt-mark hold kubeadm
3

Node'u bakım durumuna alın

Aşağıdaki drain komutu, belirtilen bir Kubernetes node’unu bakım durumuna alır ve podları diğer node’lara aktarır. Master (control-plane) node’unuza alternatif bir master node’a sahip değilseniz bu komut sistem kesintisine sebep olacaktır. Tek node’a sahip cluster’lar için bu işlemi uygulamayabilirsiniz.
kubectl drain <MASTER_NODE_NAME> --ignore-daemonsets
4

Kubeadm upgrade işlemini gerçekleştirin

Kurulumu gerçekleştirilen v1.19.3 sürümüne upgrade komutu ile Kubeadm’i yükseltin:
# Master (control-plane) için:
# versiyon kısmını her bir sürümde değiştiriniz
sudo kubeadm upgrade apply v1.19.3
İşlemin başarılı olduğunu belirten mesajı ekranda çıktı olarak görmelisiniz.
5

Node'u tekrar kullanılabilir hale getirin

kubectl uncordon <MASTER_NODE_NAME>
6

Kubelet ve Kubectl versiyonlarını yükseltin

sudo apt-mark unhold kubelet kubectl
sudo dpkg -i kubelet_1.19.3-00_amd64.deb
sudo dpkg -i kubectl_1.19.3-00_amd64.deb
sudo apt-mark hold kubelet kubectl
7

Kubelet hizmetini yeniden başlatın

systemctl daemon-reload
systemctl restart kubelet
8

Versiyon kontrolü yapın

Master (control-plane) olan node’un versiyonunu görüntülemek için:
kubectl get nodes
Versiyon olarak upgrade işleminin başarılı olduğunu kontrol edin.

Worker Node için Yükseltme

Worker node’un versiyon yükseltmesi de benzer adımlarla gerçekleştirilir.
1

Worker node'u bakım durumuna alın

Aşağıdaki drain komutu, belirtilen bir Kubernetes node’unu bakım durumuna alır ve podları diğer node’lara aktarır. Worker node’unuza alternatif bir node’a sahip değilseniz bu komut sistem kesintisine sebep olacaktır. Tek worker node’a sahip cluster’lar için bu işlemi uygulamayabilirsiniz.Komut master(control-plane) sunucusunda çalıştırılır ve worker node için bakım ve pod boşaltma işlemini başlatır.
kubectl drain <WORKER_NODE_NAME> --ignore-daemonsets
2

Worker node sunucusuna geçiş yapın

Worker node’un bulunduğu sunucuya geçiş yapılır ve kubeadm yükseltme işlemi gerçekleştirilir.fss.apinizer.com adresi üzerinden indirdiğiniz dosyayı çıkarttığınız klasöre gidin:
sudo apt-mark unhold kubeadm
sudo dpkg -i kubeadm_1.19.3-00_amd64.deb
sudo apt-mark hold kubeadm
3

Worker node için yükseltme işlemini gerçekleştirin

sudo kubeadm upgrade node
4

Kubelet ve Kubectl versiyonlarını yükseltin

sudo apt-mark unhold kubelet kubectl
sudo dpkg -i kubelet_1.19.3-00_amd64.deb
sudo dpkg -i kubectl_1.19.3-00_amd64.deb
sudo apt-mark hold kubelet kubectl
5

Kubelet hizmetini yeniden başlatın

systemctl daemon-reload
systemctl restart kubelet
6

Node'u tekrar kullanıma açın

Aşağıdaki komutu master(control-plane) olan node’da çalıştırarak node’u tekrar kullanıma açınız:
kubectl uncordon <WORKER_NODE_NAME>
7

Versiyon kontrolü yapın

Worker node’un versiyonunu görüntülemek için:
kubectl get nodes

1.2) 1.20’den 1.23’e Yükseltme

1.20-1.23 versiyonları tek tek güncellenir. Her bir versiyon için yukarıdaki adımlar tekrarlanır.

1.3) 1.24’ten 1.30’a Yükseltme

Çok ÖnemliKubernetes 1.24 versiyonuna geçerken Docker yerine Containerd kullanımına geçilmeli. Containerd 1.6+ üstü olmalı ve docker kaldırılmalıdır.
1.24-1.30 versiyonları tek tek güncellenir. Her bir versiyon için yukarıdaki adımlar tekrarlanır. Ancak 1.24’e geçerken containerd kurulumu yapılmalıdır.

Containerd Kurulumu (Kubernetes 1.24 için)

Kubernetes 1.24 versiyonuna geçerken Docker yerine Containerd kullanımına geçilmelidir.

Containerd Kurulumu

Containerd kurulumu için gerekli dosyayı indirebilirsiniz.Containerd kurulumu ve Docker’dan geçiş işlemleri için ilgili dokümantasyon sayfalarına bakınız.