【智簡聯接,萬物互聯】華為云·云享專家董昕:Serverless和微服務下, IoT的變革蓄勢待發
1153
2025-04-04
【背景介紹】
云容器引擎(Cloud Container Engine,簡稱CCE)提供高度可擴展的、高性能的企業級Kubernetes集群,支持運行Docker容器。
本文從CCE容器部署高可用以及CCE容器業務高可用兩個方面詳細介紹了CCE集群的高可用的指導方案。
【指導方案】
1.1???CCE容器高可用部署
1.1.1???容器基礎設施(集群)的高可用
容器高可用依賴于基礎設施(集群)的高可用,集群是單AZ部署,一旦發生單AZ或者單節點故障,業務必然受到影響。
AZ級別的CCE高可用集群,如果集群的master節點有一半以上的節點故障,集群將不可用。
如下參考鏈接,詳細講解了如何購買4種CCE的高可用集群的操作步驟:
1)購買混合集群:https://support.huaweicloud.com/usermanual-cce/cce_01_0028.html
2)購買鯤鵬集群:https://support.huaweicloud.com/usermanual-cce/cce_01_0121.html
3)購買GPU集群:https://support.huaweicloud.com/usermanual-cce/cce_01_0122.html
4)購買Turbo集群:https://support.huaweicloud.com/usermanual-cce/cce_01_0246.html
1.1.2???容器實例的高可用
容器高可用依賴于多實例部署,在合理配置反親和后,如果發生單實例、單節點、單AZ故障,業務均不受影響。
容器高可用部署方式展示
使用華為云CCE的親和性策略:自身反親和(節點級別), 使所有的pod強制調度到不同的節點上。
新創建的工作負載按照規則發布,已經創建的工作負載kill或驅逐老實例,實現工作負載自身反親和(節點級別)。
a.如下圖,現有1個CCE集群,有3個node節點部署。
CCE集群的3個node節點
b.添加工作負載的調度策略,使用負載與自身反親和(節點級別),如圖。
負載與自身反親和(節點級別)配置
c.則工作負載的POD都被調度到不同Node,如圖。
工作負載的pod都被調度到不同Node
使用華為云CCE的親和性策略:自身反親和(可用區級別)?,所有的pod實例會被調度到不同的可用區上。
新創建的工作負載按照規則發布,已經創建的工作負載kill或驅逐老實例,實現工作負載自身反親和(可用區級別)
a.???????如下圖,現有1個CCE集群,有3個node節點部署。
CCE集群的3個node節點
b.添加工作負載的調度策略,使用負載與自身反親和(可用區級別),如右圖。
負載與自身反親和(節點級別)配置
c.則工作負載的POD都被調度到不同可用區,如右圖。
負載與自身反親和(節點級別)配置
如下參考鏈接,詳細講解了工作負載的反親和性的操作步驟:
工作負載間的反親和性:https://support.huaweicloud.com/usermanual-cce/cce_01_0227.html
1.1.3???容器數據存儲-高可用(EVS OBS SFS)
容器存儲可以將容器中的數據可以保存在EVS共享盤(支持跨節點,不支持跨可用區)、OBS桶(支持跨節點跨可用區)、SFS(支持跨節點跨可用區)等,此后,容器發生遷移時,相應的存儲會伴隨容器進行遷移(自動從原節點卸載,并掛載到新節點)。
容器化集群高可用部署的基本拓撲圖
a.所有實例都同時Active,通過負載均衡把請求分發到集群的不同實例中,集群中任何一個主實例出現故障,不影響其他主實例運行,可將數據保存到EVS共享盤(支持跨節點,不支持跨可用區)、OBS桶(支持跨節點跨可用區)、SFS(支持跨節點跨可用區)中。(右圖為跨節點示意圖)
b.客戶無保存數據的訴求,不用考慮數據的保存問題。
a.所有實例只有一個主能提供服務,有一個或多個備是Standby狀態,通過主備實例切換或主實例選舉(毫秒級完成)來保證高可用,可將數據保存在云硬盤(不支持跨節點)、?EVS共享盤(支持跨節點,不支持跨可用區)、OBS桶(支持跨節點跨可用區)、SFS(支持跨節點跨可用區)(右圖為跨節點示意圖)
b.客戶無保存數據的訴求,不用考慮數據的保存問題。
1.2???CCE?容器業務的高可用
1.2.1???彈性伸縮-CCE-autoscaler-node節點彈性擴縮
如下參考鏈接,詳細講解了創建以及管理節點伸縮策略的操作步驟:
創建節點伸縮策略:https://support.huaweicloud.com/usermanual-cce/cce_01_0209.html
管理節點伸縮策略:https://support.huaweicloud.com/usermanual-cce/cce_01_0063.html
1.2.2???彈性伸縮-CCE-HPA-POD實例彈性擴縮容(無狀態工作負載)
HPA工作機制
HPA(Horizontal Pod Autoscaler)是用來控制Pod水平伸縮的控制器,HPA周期性檢查Pod的度量數據,?計算滿足HPA資源所配置的目標數值所需的副本數量,進而調整目標資源(如Deployment)的replicas字段。
HPA可以配置單個和多個度量指標,配置單個度量指標時,只需要對Pod的當前度量數據求和,除以期望目標值,然后向上取整,就能得到期望的副本數。例如有一個Deployment控制有3個Pod,每個Pod的CPU使用率是70%、50%、90%,而HPA中配置的期望值是50%,計算期望副本數=(70 + 50 + 90)/50 = 4.2,向上取整得到5,即期望副本數就是5。
如果是配置多個度量指標,則會分別計算單個度量指標的期望副本數量,然后
取其中最大值,就是最終的期望副本數量。
如下參考鏈接,詳細講解了創建以及管理工作負載伸縮策略的操作步驟:
1)創建工作負載伸縮策略:https://support.huaweicloud.com/usermanual-cce/cce_01_0208.html
2)管理工作負載伸縮策略:https://support.huaweicloud.com/usermanual-cce/cce_01_0083.html
備注:CCE-HPA-POD實例彈性擴縮容是影響CCE-autoscaler-node節點彈性擴縮容的一個因素,但是CCE-HPA-POD實例彈性擴縮容和CCE-autoscaler-node節點彈性擴縮容之間沒有絕對有規律的關系。
1.2.3???滾動升級
Kubernetes提供了一種比較方便的方式為滾動升級,在升級過程中,對集群中的實例進行逐漸替換成新版本(按照替換比例,先啟動新實例再殺掉老實例),保證了服務的可用性。
升級實例過程中的業務不中斷:https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_00223.html)
如果老實例為長連接,為了保證客戶業務在滾動升級時,不受影響,設置容器生命周期為停止前處理(容器停止前觸發。設置停止前處理,確保升級或實例刪除時可提前將實例中運行的業務排水。)
停止前處理:https://support.huaweicloud.com/usermanual-cce/cce_01_0105.html#cce_01_0105__section2334114473712
Kubernetes 云容器引擎 CCE
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。