Kubernetes CKA課程筆記 74

Upgrade K8s Cluster — 實際Demo升級Cluster —Worker

ZONGRU Li
Dec 4, 2021
  • 接著進行wokrer node的升級作業(一台台做)

執行Master Node升級

1.執行worker1上的kubeadm升級:

  • 首先進到worker1:
進到worker1
  • 首先還是要先切換到root帳號!!:
  • 後面依樣依據官方文件作業:
link
  • 如上,執行kubeadm升級,執行:
apt-get update && \
apt-get install -y --allow-change-held-packages kubeadm=1.22.0-00
完成kubeadm升級
  • 依樣可以透過指令確認kubeadm版本:

2.執行worker1上透過升級後的kubeadm,升級kubelet configuration:

  • 透過升級後的kubeadm升級kubelet設定檔,執行:

kubeadm upgrade node

3.讓worker1完成drain,透過master執行:

  • 這邊很重要的是,執行worker機台的drain要從master上發動
開一個master的putty順便看看狀態
  • master node上執行以下指令:

kubectl drain <node-to-drain> --ignore-daemonsets

看起來很順利地結束
  • 特別註記一下,上面講師做完時有出現錯誤,內容是說
  • 無法移除並非經由ReplicationController, ReplicaSet,Job,DaemonSet or SettefulSet建立的Pods
  • 也就是如果有建立臨時Pod例如透過以下指令建立的,就無法移除(evict):

kubectl run <pod名稱> --image=<選擇的image名稱>

  • 抑或是直接透過Pod的Configuration file,用kubectl apply指令建的Pod
  • 都不能移除,也無法Re-Schedule到另一台Worker
  • 所以若有出現跟講師依樣狀況則剛剛的指令要改為執行如下:

kubectl drain <node-to-drain> --ignore-daemonsets --force

  • 然後過程會看到那些臨時Podevict(排除)
  • 此時依樣在master檢查一下Pod分布狀態:
因為前面課程關係,我移除很多deployment,所以這邊看不太出來,不然理論上很多Pod都會長到另一台worker
  • 或是看看全部nameSpace的:
worker1只剩下DaemonSet Pod

4.執行worker1上升級kubelet與kubectl:

  • 從上述master指揮完成worker1drain
  • 回到worker1,並且還是在root狀態:
  • 繼續參照官方doc:
link
  • 執行升級指令:
apt-get update && \
apt-get install -y --allow-change-held-packages kubelet=1.22.0-00 kubectl=1.22.0-00
  • 接著依樣如官網doc:
重啟kubelet服務
  • 重啟kubelet服務,執行(已經root了,不用在sudo):
systemctl daemon-reload
systemctl restart kubelet

5.讓worker1解除封鎖,透過master執行::

  • 接著在看到官網doc,恢復worker1變回可以佈署Pod的狀態:
  • 執行上述的Uncordon(解封鎖)指令,記得是在master上執行!!:

kubectl uncordon <node-to-drain>

  • 以上,就完成了worker1的升級
  • 後面worker2就是做一樣動作而已,就不重複筆記,就當練習做完
  • worker2升級過程我特別注意到一個有趣的東西:
在做完worker2 drain後看到的,等等結束後再看看會不會平均長回去worker2
  • 最後完成如下圖:
完成整個K8s Cluster升級作業!!!

以上就已經完成了整個K8s Cluster的升級作業了!!!

參考課程(reference)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet