集群节点配置推荐

1、Master配置推荐

Master规格跟集群规模有关,集群规模越大,所需要的Master规格也越高,不同集群规模的,Master节点配置推荐如下:

节点规模 Master规格
1-10个节点 >=2核4G
10-100个节点 >=4核8G
100-250个节点 >=8核16G
250-500个节点 >=16核32G
500-1000个节点 >=32核64G
1000个以上节点联系我们

2、如何选择Node配置大小

关于Node节点的资源预留策略

在确定UK8S的Node节点配置之前,您需要知道,UK8S Node默认预留1G内存,0.2核CPU以保障系统稳定运行。这些预留的资源是给系统及kubernetes相关服务进程使用的。

且当可用内存小于5%时会根据pod资源优先级开始驱逐,pod实际可使用的内存约为{memeroy of Node}-1G-5% (例如:4G内存,可用约为2.8G),同时,单个节点可创建Pod和Node CPU核数有关。pods数量=CPU核数 x 8 (例如:2核=16 pods, 4核=32 pods)。

因此,我们建议Node的配置>=2C4G,这是保证集群正常运行的基础配置。

至于生产环境的Node配置选项,可根据整个集群的日常使用的总核数以及故障容忍度、业务类型综合考量,具体如下:

假设集群总核数设定为240核(基于过往运营数据而定),可以容忍10%的错误。那么可以选择10台24核UHost,并且高峰运行的负荷不要超过240*90%=216核。如果容忍度小于5%,那么可以选择15台16核的UHost,这样就算有一台节点出现故障,剩余节点仍可以支持现有业务正常运行(工作负载自动迁移)。

从提供错误容忍度的角度看,节点配置越低,节点会更多,那可用性也会相应地提高。但也存在另外两个弊端,一是需要预留给K8S的资源过多,造成浪费;二是不便于容器调度,甚至会导致部分容器无法被注册。一个极端的例子,3台8核的节点,可创建6个需要预留4核的Pod,但12台2C的节点,却无法响应一个需要预留4核资源的Pod请求。

综合资源有效利用率、错误容忍度两个因素,在不考虑业务混合部署、业务总体规模大小的情况下,我们建议生产环境的Node节点CPU应该介于4核至32核之间。

至于CPU:Memory比例,建议根据自身的应用类型申请合适的机型,例如CPU密集型的业务可以申请1:2的机型,Java类的应用可以申请1:4或1:8的机型,如果是不同业务混合部署,最好给Node打好标签,配合nodeAffinity合理调度Pod。

最后是系统盘,UK8S的NOde节点默认40G系统盘,节点创建时可选择数据盘挂载,这个盘是专门提供给docker存放本地镜像的。节点创建完成后依然可以在主机侧挂载数据盘(请保证磁盘空间充足,当磁盘空间不足时,将会随机删除docker镜像与pod)。