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。