Kubernetes CKA課程筆記 73
目前當下的K8s Cluster版本:
首先將執行Master Node升級
1.執行Master Node上的kubeadm升級:
- 首先登入master後,安裝上都是使用root,所以先切換到root帳號,執行:
sudo -i
- 接著在root身分下,先把安裝套件清單更新,執行:
apt update
如上圖,這邊講師沒提,但是我想試試上面提示的察看清單指令看看:
apt list --upgradable
- 回過頭,僅確認kubeadm tool,執行:
apt-cache madison kubeadm
- 也可以先透過kubeadm指令確認當前版本,執行:
kubeadm version
- 並且在執行升級過程,建議都打開著官方doc:
- 然後可以邊看邊操作,並查看所需要知道的細節
- 同上頁面往下滑就看到我們剛剛完成的動作部分:
- 接著繼續往下滑,看到以下步驟:
- 如上要求在使用apt-get版本為1.1以上的情況
- 所以暫時先執行apt-get版本確認指令先確定,執行:
apt-get --version
接著就是執行上面doc文件的兩步,第一步執行:
apt-get update
- 接著執行第二步,就是執行kubeadm升級,小心後面的x要自己改!,執行:
apt-get install -y --allow-change-held-packages kubeadm=1.22.0-00
- 上面指令上的held就是讓OS知道,不要任意自動更新這個軟體版本
- 接著確認kubeadm當前版本,再次執行:
kubeadm version
2.執行Master Node上Components升級:
- 接著參考官方doc,提供了一個預覽指令,看看接下來會升級那些東西
kubeadm upgrade plan
- 參考上面指令,我們改成我們要升級的1.22.0版就好,執行:
kubeadm upgrade apply v1.22.0
- 執行過程我大概跑了2~3分鐘:
- 此時我們可以暫時退出root,身分,並執行確認Pod指令,會看到:
- 但是若是確認node版本,則會看到:
3.執行Master Node上kubelet & kubectl升級前準備 →Drain the Node!!!:
- 如同上一篇說的,kubelet是指揮調度Pods的
- 在升級kubelet前要先把Pods清空,參考官方doc要執行如下動作:
kubectl drain <hostname,這邊就是master>
- 所以執行drain動作指令改執行:
kubectl drain master --ignore-daemonsets
- 接著可以再用確認Node指令看到:
4.執行Master Node上kubelet & kubectl實際升級:
- 依樣參考到官方doc接下來的動作:
- 參照上述指令執行:
apt-get update && \
apt-get install -y --allow-change-held-packages kubelet=1.22.0-00 kubectl=1.22.0-00
- 切回root先!!!
- 在用root執行一次!!
- 繼續參照到官網doc:
- 如上執行(因為已經是root了,不用sudo):
systemctl daemon-reload
systemctl restart kubelet
- 接著檢查一下kubelet的服務狀態,執行:
systemctl status kubelet
至此就完成kubelet與kubectl的升級
5.執行Master Node上,Node狀態Uncordon(解封鎖!):
- 依樣看到官方doc:
- 不過記得這不需要root,所以先離開root,執行:
- 接著執行解除封鎖指令:
kubectl uncordon <hostname,這邊就是master>
- 接著當然要看一下node狀態確認一下:
6.特別注意若是在多台Master Nodes狀態!!
- 官網doc上有特別這一段:
- 其餘步驟則都是一樣
以上即完成了Master Node升級,為了明顯區分
我把Worker Nodes升級放下一篇