OpenShift容量規劃步驟
OpenShift Container Platform(簡稱OCP)的容量規劃一共有5大步驟。這對於我們將應用從虛擬化向OCP遷移的步驟也有一定參考意義。
備註:OCP的訂閱最小單位是2個CPU Cores。如果服務器啓動了Intel CPU硬件超線程,那麼2 Core的訂閱將會被4個vCPU使用。
步驟1:確定VM或硬件的 CPU Cores數量和內存
OCP可以部署在物理機或虛擬機上,在大多數情況下,Intel CPU打開硬件超線程,因此2vCPU等於一個CPU Core。
需要回答的問題:
用於OCP節點的VM的內存容量是多少?
用於OCP節點的VM的vCPU數量是多少?
是否使用CPU硬件超線程?
回答示例:
VM有64GB內存和4個vCPU,並使用了超線程
步驟2:計算所需的應用程序實例數
確定計劃部署多少個應用程序實例或Pod。OpenShift上部署的任何應用程序組件(例如數據庫、前端靜態服務器或消息代理實例)都被視爲應用程序實例。
需要回答兩個問題:
預計在每個OpenShift環境中部署多少個應用程序實例?
它們是什麼類型的應用程序(例如開發語言,開發框架,使用的數據庫)?
示例回答:
開發環境中大約有1,250個應用程序實例,生產中大約有250個應用程序實例。
主要部署Java,但也有一些Microsoft .NET Core和Ruby應用程序。使用很多MySQL。
步驟3:確定首選的最大OpenShift節點利用率
建議在需求增加的情況下保留一些空間,尤其是在爲工作負載啓用HPA時。根據在OpenShift上運行的應用程序的歷史負載,最大利用率會有所不同。
確定OpenShift節點的最大資源利用率問題。
想爲增加的需求預留多少空間?
示例回答:
我們希望以最大平均值運行節點總容量的80%(保留20%的備用容量)。
步驟4:確定總內存佔用量
考慮如下問題:
應用程序的平均內存佔用量是多少?
示例回答:
應用程序實例使用2GB內存或更少。
通常爲JVM Heap分配2GB。
步驟5:計算總計
每個節點的有效內存:節點的總內存與節點最大利用率的乘積:
Effective per node memory capacity (GB)
= Preferred maximum OpenShift node utilization (%) * Standard VM or hardware memory
總內存使用量爲:應用實例的數量與平均應用程序內存佔用量的乘積:
Total memory utilization
= Application instances * Average application memory footprint
OCP計算資源節點數:應用總內存需求量除以虛擬機或服務器的內存數量
Number of nodes required to cover utilization
= Total memory utilization / Standard VM or hardware memory
總共需要的CPU Cores:OCP計算資源的節點數與節點的CPU Cores的乘積。
Total required cores
= Number of nodes required to cover utilization * Standard VM or Hardware cores
有效虛擬CPU Core需求量(如果打開了硬件超線程):
Effective virtual cores = Total required cores / 2
需要的OCP訂閱數(第一種是沒有打開硬件超線程,第二種是打開了硬件超線程,一個訂閱最少包含2 CPU Cores):
Number of OpenShift Container Platform subscriptions
= Total cores / 2
或
= Effective virtual cores / 2
計算範例
虛擬化環境的示例計算:
虛擬機有4個vCPU,打開了硬件超線程,因此有兩個有效虛擬CPU Core。
• Standard number of VM cores = 4 (hyperthreading used, 2 effective v
irtual cores)
虛擬機內存爲64GB
• Standard VM memory = 64 GB
節點最大利用率:
• Preferred maximum node utilization = 80%
每個應用需要的內存:
• Average application memory footprint = 2 GB
應用的總量:
• Number of application instances = 1500
訂閱總需求量:
每個OCP節點的有效內存量:64-GB與節點最大利用率的乘積,即每個OCP節點提供51G內存:
• Effective node memory capacity
= 80% preferred maximum node utilization * 64 GB standard VM memory
= 51 GB
總的內存使用量:每個應用消耗的內存與應用數量的乘積:
• Total memory utilization
= 1500 application instances * 2 GB average application memory footprint
= 3000 GB
OCP所需節點數:總內存需求量與每個節點能夠提供的有效內存的除法:
• Nodes required to cover utilization
= 3000 GB total memory utilization / 51 GB effective node memory capacity
= 59 nodes
總CPU Core需求量:所需OCP節點數與每個OCP節點的CPU Cores的乘積:
• Total cores
= 59 nodes required * 2 cores per node
= 118 total cores
總的訂閱數量:總需求的CPU Cores除以2(一套訂閱包含兩個Cores)
• Total subscriptions
= 118 total cores / 2 cores per subscription
= 59 subscriptions
因此,在這種情況下,需要購買59 套2-core OpenShift Container Platform subscriptions。