本文介绍构建Kubernetes集群时该如何选择ECS类型以及选型的注意事项。
集群规格规划
目前在创建Kubernetes集群时,存在着使用很多小规格ECS的现象,这样做有以下弊端:
网络问题:小规格Worker ECS的网络资源受限。
容量问题:为了确保集群的稳定性和可靠性,系统需要预留一部分节点资源用于集群管理和基础设施组件的运行,包括CPU、内存和磁盘等。小规格ECS可能影响集群的性能和可用性。
碎片化问题:节点资源分配时,如果一个容器基本可以占用一个小规格ECS,由于资源需求的不一致或不连续性,将导致该ECS的剩余资源无法利用(构建新的容器或恢复失败的容器),从而造成资源浪费。例如,某个节点只能分配整数倍的CPU,而其应用程序只需要少量CPU,那么剩余的CPU资源将被浪费。
使用大规格ECS的优势:
网络优势:网络带宽大,对于大带宽类的应用,资源利用率高。同时,容器在一台ECS内建立通信的比例增大,将减少网络传输。
镜像拉取优势:拉取镜像的效率更高。因为镜像只需要拉取一次就可以被多个容器使用。而对于小规格的ECS拉取镜像的次数就会增多,若需要联动ECS伸缩集群,则需要花费更多的时间,反而达不到立即响应的目的。
关于ECS规格的选择,请参见下文选择Master节点规格、选择Worker节点规格。
选择Master节点规格
通过容器服务创建的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节点规格
ECS规格要求:CPU大于等于4核,且内存大于等于8 GiB。
确定整个集群的日常使用的总核数以及可用度的容忍度。
例如,集群总的核数有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加密,可信计算环境,支持区块链等应用。
更多信息,请参见弹性裸金属服务器概述。