本文介紹構建Kubernetes叢集時該如何選擇ECS類型以及選型的注意事項。
叢集規格規劃
目前在建立Kubernetes叢集時,存在著使用很多小規格ECS的現象,這樣做有以下弊端:
網路問題:小規格Worker ECS的網路資源受限。
容量問題:為了確保叢集的穩定性和可靠性,系統需要預留一部分節點資源用於叢集管理和基礎設施組件的運行,包括CPU、記憶體和磁碟等。小規格ECS可能影響叢集的效能和可用性。
片段化問題:節點資源分派時,如果一個容器基本可以佔用一個小規格ECS,由於資源需求的不一致或不連續性,將導致此ECS的剩餘資源就無法利用(構建新的容器或者是恢複失敗的容器),導致資源浪費。例如,某個節點只能分配整數倍的CPU,而其應用程式只需要少量CPU,那麼剩餘的CPU資源將被浪費。
使用大規格ECS的優勢:
網路優勢:網路頻寬大,對於大頻寬類的應用,資源使用率高。同時,容器在一台ECS內建立通訊的比例增大,將減少網路傳輸。
鏡像拉取優勢:拉取鏡像的效率更高。因為鏡像只需要拉取一次就可以被多個容器使用。而對於小規格的ECS拉取鏡像的次數就會增多,若需要聯動ECS伸縮叢集,則需要花費更多的時間,反而達不到立即響應的目的。
關於ECS規格的選擇,請參見下文選擇Master節點規格、選擇Worker節點規格。
選擇Master節點規格
通過Container Service建立的Kubernetes叢集,Master節點上運行著etcd、kube-apiserver、kube-controller等核心組件,對於Kubernetes叢集的穩定性有著至關重要的影響,對於生產環境的叢集,必須謹慎選擇Master規格。Master規格跟叢集規模有關,叢集規模越大,所需要的Master規格也越高。
您可從多個角度衡量叢集規模,例如節點數量、Pod數量、部署頻率、訪問量。這裡簡單的認為叢集規模就是叢集裡的節點數量。
在個人測試和學習環境中,您可以選擇小規格ECS進行體驗。對於常見的生產叢集規模,可以參見下表選擇Master節點的規格。下表推薦配置能盡量保證Master負載維持在一個較低的水平上。
節點規模 | Master節點推薦規格 |
1~5個節點 | 4核 8 GB(不推薦使用2核 4 GB) |
6~20個節點 | 4核 16 GB |
21~100個節點 | 8核 32 GB |
100~200個節點 | 16核 64 GB |
200~500個節點(請估爆炸半徑風險) | 64核 128GB |
選擇Worker節點規格
節點規格為4核 8 GB及以上。更多資訊,請參見ECS選型推薦配置。
確定整個叢集的日常使用的總核心數以及可用度的容忍度。
例如,叢集總的核心數有160核,可以容忍10%的錯誤。那麼最小選擇10台16核ECS,並且高峰啟動並執行負荷不要超過160*90%=144核。如果容忍度是20%,那麼最小選擇5台32核ECS,並且高峰啟動並執行負荷不要超過160*80%=128核。這樣就算有一台ECS出現故障,剩餘ECS仍可以支援現有業務正常運行。
當叢集日常規模達到1000核左右,可以選用裸金屬神龍伺服器。更多資訊,請參見裸金屬神龍伺服器使用情境及優勢。
根據Pod資源要求,確定CPU和Memory的配比,例如1:2、1:4等。對於使用記憶體比較多的應用例如Java類應用,建議考慮使用1:8的機型。
裸金屬神龍伺服器使用情境及優勢
使用情境
叢集日常規模能夠達到1000核。一台神龍伺服器至少96核,這樣可以通過10台或11台神龍伺服器即可構建一個叢集。
快速擴大較多容器。例如,電商類大促情境下,為應對流量尖峰,可以使用神龍服務作為新增節點,每增加一台神龍伺服器就可以支援多個容器的運行。
優勢
超強網路: 配備RDMA(Remote Direct Memory Access)技術。通過Terway容器網路,充分發揮硬體效能,跨宿主機容器頻寬超過9 GB。
計算效能零抖動:自研晶片取代Hypervisor,無虛擬化開銷,無資源搶佔。
安全:物理層級加密,支援Intel SGX加密,可信計算環境,支援區塊鏈等應用。
更多資訊,請參見ECS Bare Metal Instance概述。