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。