K8S 平臺升級-基礎篇

更新於 發佈於 閱讀時間約 10 分鐘

今天來記錄版本升級的做法(z版號),Kubernetes的版本更新的很快,所以版本升級是每個管理者所必須要會的必備技能,建議版本升級之前要先去確認升級路徑,不是每個版本號都能一次升級到你需要的版本。

那條路才是我要去的?

那條路才是我要去的?

升級順序是Master => Worker

那就開始吧!


1. 狀態確認

[master]# kubectl get nodes

raw-image

在進行任何Cluste層級的操作之前,務必在狀態正常的情況下才開始執行,不然可能會直接導致任何不可預期的後果。

在確認完狀態之後,接下來就進入升級的實務操作。


2. 升級Control-Plane(1.25.11 -> 1.25.12)

#----------------------------------------------------------
# S2-1. 確認目前版本號
#----------------------------------------------------------
[master01]# kubeadm version -o json
raw-image
#---------------------------------------------------
# S2-2. 使用指令來確認要升級的版本
#---------------------------------------------------
[master01]# kubeadm upgrade plan
raw-image
#-------------------------------------------------
# S2-3. 安裝kubeadm (all master nodes)
#-------------------------------------------------
[master01]# yum list --showduplicates kubeadm --disableexcludes=kubernetes
[master01]# yum install kubeadm-1.25.12-0
raw-image
#--------------------------------------------------
# S2-4. Drain workload
# 排空master: 將節點標記為不可調度並驅逐負載來讓節點進入維護模式,
# 將Pod優雅中止
#--------------------------------------------------
[master01]# kubectl drain <master-node> --ignore-daemonsets

※註:如果有Pod吃到local-storage時會出現錯誤,如果不需要,可以加上"--delete-local-data"
raw-image
raw-image
#-------------------------------------------------
# S2-5. 執行升級
#-------------------------------------------------
[master01]# kubeadm upgrade apply v1.25.12
[master01]# kubeadm version -o json

※ 到其他master node執行
# kubeadm upgrade node​
raw-image
raw-image
#-----------------------------------------------
# S2-6. 升級kubectl與kubelet (all masters)
#-----------------------------------------------
[master01]# yum list --showduplicates kubelet --disableexcludes=kubernetes
[master01]# yum install -y kubelet-1.25.12-0 kubectl-1.25.12-0 --disableexcludeds=kubernetes
[master01]# systemctl daemon-reload; systemctl restart kubelet

※ 全部完成後
[master01]# kubectl get nodes​
raw-image
#-------------------------------------------------
# S2-7. Uncordon workload (all masters)
#-------------------------------------------------
[master01]# kubectl uncordon master01.test.example.poc
[master01]# kubectl uncordon master02.test.example.poc
[master01]# kubectl uncordon master03.test.example.poc

※ Upgrade過程中,kubeadm會將etcd相關備份在節點的以下位置

[master01]# cd /etc/kubernetes/tmp
[master01]# ls -al
raw-image

3. 升級Worker(1.25.11 -> 1.25.12)

#-----------------------------------------------
# S3-1. 更新kubeadm (workers)
#-----------------------------------------------
[worker01]# yum install kubeadm-1.25.12-0
[worker02]# yum install kubeadm-1.25.12-0
#-----------------------------------------------
# S3-2. Drain workload
#-----------------------------------------------
[master01]# kubectl drain <worker-node> --ignore-daemonsets
[master01]# kubectl get nodes
raw-image
#-------------------------------------------------
# S3-3. upgrade nodes (workers)
#-------------------------------------------------
[worker01]# kubeadm upgrade node
raw-image
#----------------------------------------------
# S3-4. 升級kubectl與kubelet (all workers)
#----------------------------------------------
[worker01]# yum list --showduplicates kubelet --disableexcludes=kubernetes
[worker01]# yum install -y kubelet-1.25.12-0 kubectl-1.25.12-0 --disableexcludes=kubernetes
[worker01]# systemctl daemon-reload ; systemctl restart kubelet

※全部完成後
[master01]# kubectl get nodes​
raw-image
#-----------------------------------------------
# S3-5. uncordon workload (all workers)
#-----------------------------------------------
[master01]# kubectl uncordon worker01.test.example.poc
[master01]# kubectl uncordon worker02.test.example.poc
raw-image
#------------------------------------------------
# S3-6. 確認Cluster狀態
#------------------------------------------------​
[master01]# kubectl get --raw='/readyz?verbose'
raw-image
#------------------------------------------------
# S3-7. 確認Pod狀態
#------------------------------------------------​
[master01]# kubectl get po -n kube-system
raw-image

4.結論

以上就完成了小版本號的升級,通常這類型的升級比較可能發生在有Critical的問題需要修正的時候,因為每次升級都可能會影響應用服務,升級前務必要確認影響程度再執行。

至於y版本的升級基本上類似,只要注意升級路徑與影響即可。

最後,做任何升級動作前,一定要做:

備份! 備份! 備份!


備份的部份未來將在其他文章再進行分享,如果不知道要選擇什麼第三方工具時,至少也要做到官方所提到的ETCD備份。


Reference:

留言
avatar-img
留言分享你的想法!
avatar-img
超健忘閒人的沙龍
15會員
40內容數
記錄IT社畜的自我學習筆記,如同專題名稱,主要是怕自已忘記自已做過什麼、學到什麼。索性就分享我自已在學習Kubernetes這條路上的各種測試、學習心得。
2024/05/08
本文將介紹如何在Gitlab上部署和註冊runner,以進行CI/CD測試。透過Docker-compose方式進行部署,同時注意安裝時的一些注意事項。建議學習者至少掌握一種以上的Pipeline工具,以滿足實務上的需求。
Thumbnail
2024/05/08
本文將介紹如何在Gitlab上部署和註冊runner,以進行CI/CD測試。透過Docker-compose方式進行部署,同時注意安裝時的一些注意事項。建議學習者至少掌握一種以上的Pipeline工具,以滿足實務上的需求。
Thumbnail
2024/04/19
上一篇說明了如何在Kubernetes上建立基本的MySQL standalone,並加入phpmyadmin(PMA)來進行圖形化的管理,本篇就再進階一步,實作MySQL replication架構(master-salve),並進行驗證是否成功。
Thumbnail
2024/04/19
上一篇說明了如何在Kubernetes上建立基本的MySQL standalone,並加入phpmyadmin(PMA)來進行圖形化的管理,本篇就再進階一步,實作MySQL replication架構(master-salve),並進行驗證是否成功。
Thumbnail
2024/04/09
本文記錄如何在Kubernetes環境下,部署Standalone架構的MySQL Database,並透過phpmyadmin進行管理。這篇文章將分成MySQL部署在K8S內的優勢、部署MySQL DB standalone、部署PhpMyAdmin (PMA)、結論四個部分進行說明與實作的流程。
Thumbnail
2024/04/09
本文記錄如何在Kubernetes環境下,部署Standalone架構的MySQL Database,並透過phpmyadmin進行管理。這篇文章將分成MySQL部署在K8S內的優勢、部署MySQL DB standalone、部署PhpMyAdmin (PMA)、結論四個部分進行說明與實作的流程。
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
這篇文章將提供一個完整的Kubernetes安裝指南,包括控制平面節點和工作節點的安裝過程。文章中還會提及一些參考資料和解決常見錯誤的方法。
Thumbnail
這篇文章將提供一個完整的Kubernetes安裝指南,包括控制平面節點和工作節點的安裝過程。文章中還會提及一些參考資料和解決常見錯誤的方法。
Thumbnail
安裝環境需求 64位元Linux,核心版本為3.1以上,且能滿足Ducker安裝環境。 機器之間要能夠互通。 外部存取權限。 硬體資源:兩核心CPU、8G記憶體、硬碟30GB以上。 安裝Kubeadm與Ducker Kubeadm是Kubernetes的一鍵部署工具。 增加Kube
Thumbnail
安裝環境需求 64位元Linux,核心版本為3.1以上,且能滿足Ducker安裝環境。 機器之間要能夠互通。 外部存取權限。 硬體資源:兩核心CPU、8G記憶體、硬碟30GB以上。 安裝Kubeadm與Ducker Kubeadm是Kubernetes的一鍵部署工具。 增加Kube
Thumbnail
本文將演示在安裝完 Kubernetes Cluster 後的基本元件安裝,包括 Calico/Calicoctl、Metric Server 和 Dashboard UI 的安裝方法以及相關問題與解決方式。
Thumbnail
本文將演示在安裝完 Kubernetes Cluster 後的基本元件安裝,包括 Calico/Calicoctl、Metric Server 和 Dashboard UI 的安裝方法以及相關問題與解決方式。
Thumbnail
這篇文章教你如何搭建Kubernetes Cluster,包括節點安裝前設定、軟體套件安裝、Control-Plane部署和加入運算節點等步驟。在建置之後,作者會分享一些基礎服務的安裝。希望這篇文章對你有所幫助。
Thumbnail
這篇文章教你如何搭建Kubernetes Cluster,包括節點安裝前設定、軟體套件安裝、Control-Plane部署和加入運算節點等步驟。在建置之後,作者會分享一些基礎服務的安裝。希望這篇文章對你有所幫助。
Thumbnail
本文章將說明如果您想要從頭建置一組具有Loadbalancer HA架構的Kubernetes Cluster時,你可能會需要做的事前準備工作。
Thumbnail
本文章將說明如果您想要從頭建置一組具有Loadbalancer HA架構的Kubernetes Cluster時,你可能會需要做的事前準備工作。
Thumbnail
延續上篇的內容,在了解了MetalLB的基本概念之後,我們就進入實際上部署的動作,還沒看過的可以到以下連結先有個基本概念: 本篇針對部署一個最基本的MetalLB的做法,共分成四個部分來進行說明:
Thumbnail
延續上篇的內容,在了解了MetalLB的基本概念之後,我們就進入實際上部署的動作,還沒看過的可以到以下連結先有個基本概念: 本篇針對部署一個最基本的MetalLB的做法,共分成四個部分來進行說明:
Thumbnail
今天來記錄版本升級的做法(z版號),Kubernetes的版本更新的很快,所以版本升級是每個管理者所必須要會的必備技能,建議版本升級之前要先去確認升級路徑,不是每個版本號都能一次升級到你需要的版本。
Thumbnail
今天來記錄版本升級的做法(z版號),Kubernetes的版本更新的很快,所以版本升級是每個管理者所必須要會的必備技能,建議版本升級之前要先去確認升級路徑,不是每個版本號都能一次升級到你需要的版本。
Thumbnail
宣告式管理是一種管理方法,其中您描述系統或資源的期望狀態,而不必關心實際如何達到該狀態。kubectl apply 命令在 Kubernetes 中實現了這種宣告式管理方式,以下是執行指令時的運作流程...
Thumbnail
宣告式管理是一種管理方法,其中您描述系統或資源的期望狀態,而不必關心實際如何達到該狀態。kubectl apply 命令在 Kubernetes 中實現了這種宣告式管理方式,以下是執行指令時的運作流程...
Thumbnail
Intro👨‍💻 在gcp環境下使用ansible playbook 建立k8s cluster,目前base image為centos 7,安裝方式類似elk stack,一樣先等master安裝完後產生token,接著安裝slave。 使用的CRI為containerd,CNI為calico
Thumbnail
Intro👨‍💻 在gcp環境下使用ansible playbook 建立k8s cluster,目前base image為centos 7,安裝方式類似elk stack,一樣先等master安裝完後產生token,接著安裝slave。 使用的CRI為containerd,CNI為calico
Thumbnail
今天就來談談,如何使用離線更新升降級系統 會使用到的軟體 Daybreak PS:如果你安裝遊戲時遇到“ Cannot parse content meta. Corrupted file or old firmware. ”那麼代表你該升級系統。 1.先更新整合包的檔案:大氣層更新包
Thumbnail
今天就來談談,如何使用離線更新升降級系統 會使用到的軟體 Daybreak PS:如果你安裝遊戲時遇到“ Cannot parse content meta. Corrupted file or old firmware. ”那麼代表你該升級系統。 1.先更新整合包的檔案:大氣層更新包
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News