K8S 平臺升級-基礎篇

更新 發佈閱讀 10 分鐘

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

那條路才是我要去的?

那條路才是我要去的?

升級順序是Master => Worker

那就開始吧!


1. 狀態確認

[master]# kubectl get nodes

vocus|新世代的創作平台

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

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


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

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

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

※ 到其他master node執行
# kubeadm upgrade node​
vocus|新世代的創作平台
vocus|新世代的創作平台
#-----------------------------------------------
# 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​
vocus|新世代的創作平台
#-------------------------------------------------
# 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
vocus|新世代的創作平台

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
vocus|新世代的創作平台
#-------------------------------------------------
# S3-3. upgrade nodes (workers)
#-------------------------------------------------
[worker01]# kubeadm upgrade node
vocus|新世代的創作平台
#----------------------------------------------
# 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​
vocus|新世代的創作平台
#-----------------------------------------------
# S3-5. uncordon workload (all workers)
#-----------------------------------------------
[master01]# kubectl uncordon worker01.test.example.poc
[master01]# kubectl uncordon worker02.test.example.poc
vocus|新世代的創作平台
#------------------------------------------------
# S3-6. 確認Cluster狀態
#------------------------------------------------​
[master01]# kubectl get --raw='/readyz?verbose'
vocus|新世代的創作平台
#------------------------------------------------
# S3-7. 確認Pod狀態
#------------------------------------------------​
[master01]# kubectl get po -n kube-system
vocus|新世代的創作平台

4.結論

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

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

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

備份! 備份! 備份!


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


Reference:

留言
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
這篇文章將提供一個完整的Kubernetes安裝指南,包括控制平面節點和工作節點的安裝過程。文章中還會提及一些參考資料和解決常見錯誤的方法。
Thumbnail
這篇文章將提供一個完整的Kubernetes安裝指南,包括控制平面節點和工作節點的安裝過程。文章中還會提及一些參考資料和解決常見錯誤的方法。
Thumbnail
今天來記錄版本升級的做法(z版號),Kubernetes的版本更新的很快,所以版本升級是每個管理者所必須要會的必備技能,建議版本升級之前要先去確認升級路徑,不是每個版本號都能一次升級到你需要的版本。
Thumbnail
今天來記錄版本升級的做法(z版號),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
本文章將說明如果您想要從頭建置一組具有Loadbalancer HA架構的Kubernetes Cluster時,你可能會需要做的事前準備工作。
Thumbnail
本文章將說明如果您想要從頭建置一組具有Loadbalancer HA架構的Kubernetes Cluster時,你可能會需要做的事前準備工作。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
宣告式管理是一種管理方法,其中您描述系統或資源的期望狀態,而不必關心實際如何達到該狀態。kubectl apply 命令在 Kubernetes 中實現了這種宣告式管理方式,以下是執行指令時的運作流程...
Thumbnail
宣告式管理是一種管理方法,其中您描述系統或資源的期望狀態,而不必關心實際如何達到該狀態。kubectl apply 命令在 Kubernetes 中實現了這種宣告式管理方式,以下是執行指令時的運作流程...
Thumbnail
這篇文章教你如何搭建Kubernetes Cluster,包括節點安裝前設定、軟體套件安裝、Control-Plane部署和加入運算節點等步驟。在建置之後,作者會分享一些基礎服務的安裝。希望這篇文章對你有所幫助。
Thumbnail
這篇文章教你如何搭建Kubernetes Cluster,包括節點安裝前設定、軟體套件安裝、Control-Plane部署和加入運算節點等步驟。在建置之後,作者會分享一些基礎服務的安裝。希望這篇文章對你有所幫助。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文將演示在安裝完 Kubernetes Cluster 後的基本元件安裝,包括 Calico/Calicoctl、Metric Server 和 Dashboard UI 的安裝方法以及相關問題與解決方式。
Thumbnail
本文將演示在安裝完 Kubernetes Cluster 後的基本元件安裝,包括 Calico/Calicoctl、Metric Server 和 Dashboard UI 的安裝方法以及相關問題與解決方式。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
延續上篇的內容,在了解了MetalLB的基本概念之後,我們就進入實際上部署的動作,還沒看過的可以到以下連結先有個基本概念: 本篇針對部署一個最基本的MetalLB的做法,共分成四個部分來進行說明:
Thumbnail
延續上篇的內容,在了解了MetalLB的基本概念之後,我們就進入實際上部署的動作,還沒看過的可以到以下連結先有個基本概念: 本篇針對部署一個最基本的MetalLB的做法,共分成四個部分來進行說明:
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News