大规模场景下K8S集群设计与实践|大企业5000个节点k8s架构设计|干货,无广告

科技   2024-08-30 09:00   黑龙江  


要设计一个大规模的KubernetesK8s)集群,比如5000个节点的集群时,可以从以下几个方面综合考虑:

1. 集群规模和节点配置

1.1 多节点小配置方案

  • 目标:通过部署多个节点来满足服务要求,每个节点的配置相对较小。


  • 优点:

    • 高可用性:节点分布广泛,单点故障对整体集群影响小。

    • 弹性:易于扩展和收缩,增加或减少节点相对简单。

    • 容错性:节点数量多,单节点故障不会对整个集群造成重大影响。


  • 缺点:

    • 管理复杂:需要管理大量的节点,可能需要自动化工具和运维团队来处理节点的状态和配置。

    • 网络延迟:由于节点较多,网络延迟可能会增加,影响集群内部通信的效率。


1.2 少节点大配置方案

  • 目标:通过部署少量节点,每个节点配置较大,以满足服务需求。


  • 优点:

    • 管理简化:节点数量少,管理和维护成本降低。

    • 资源利用率高:每个节点能够容纳更多的Pod,提高资源利用率。

    • 网络性能:节点数量少,集群内部网络通信延迟较低。


  • 缺点:

    • 资源竞争:少量节点上运行的Pod较多,可能会引发资源竞争问题。

    • 单点故障风险:节点故障可能对整体服务影响较大,需要设计合理的高可用策略。

    • 开销增加:每个Pod引入的开销(如容器运行时、kubeletcAdvisor等)在节点上运行更多Pod时增加,可能影响节点的性能和稳定性。


综合方案:折中处理,如每个节点默认可以跑110pod,那我们工作时让每个节点能运行50pod为标准,合理分配k8s节点数量即可。

具体场景如下:

1. 需求分析

  • 1)应用程序:有1000个程序。

  • 2)每个程序:需要3Pod以保证高可用性。

  • 3)每个节点的Pod容量:设计为每个节点运行50Pod

  • 4)节点的Pod运行能力:假设每个节点默认支持运行110Pod,但为了稳定性和管理考虑,我们按每节点运行50Pod来设计。

2. 计算所需Pod总数

  • 1)每个程序需要3Pod

  • 2)1000个程序总共需要的Pod数量为: 1000 个程序×Pod =3000 Pod

3. 计算所需节点数量

  • 1)每个节点最多运行50Pod

  • 2)需要的节点数量为:所需节点数量=Pod数量/每节点Pod数量=3000/50=60 个节点


按照上面方法虽然可以计算大概的节点数量,但是每个节点分配多大的cpu和内存,无法估算,如何做?

1、评估每个Pod的资源需求

首先需要了解每个PodCPU和内存需求。假设每个Pod都有不同的资源需求,通常需要先确定以下信息:

  • 1)PodCPU请求和限制request and limit):即Pod运行时期望使用的CPU资源和它能够使用的最大CPU资源。


  • 2)Pod的内存请求和限制:即Pod运行时期望使用的内存资源和它能够使用的最大内存资源。

为了计算方便,可以先假设每个Pod的资源需求的平均值或根据实际情况的某个具体值。举例说明:

  • 1)假设每个Pod平均请求0.5CPU500m     CPU),最大允许使用1CPU1000m CPU)。

  • 2)假设每个Pod平均请求1GB内存,最大允许使用2GB内存。


2、计算总的资源需求

根据Pod的资源需求,可以计算出整个集群的总资源需求:

3、 计算单个节点所需的资源

每个节点需要运行50Pod,因此可以计算出单个节点的资源需求:

4、考虑节点的资源冗余

为了保证节点的稳定性,通常不会将节点的资源完全分配给Pod,需要为系统预留一定的资源(如系统进程、日志、监控工具等)。假设为系统预留20%的资源:


5、总结节点配置

根据上述计算,单个节点应该配置至少以下资源:

  • 1)CPU:约31.25CPU cores

  • 2)内存:约62.5GB内存。


6、 调整和优化

  • 1)如果Pod的资源需求波动较大,可以考虑给每个节点留出更多的冗余。

  • 2)可以通过监控实际运行时的资源使用情况,进一步调整节点的配置。

  • 3)如果实际运行时发现部分节点资源利用率较低,可以考虑增加Pod的密度,或者减小节点的资源分配。


本月精彩文章推荐

DevOps和k8s全栈技术
专注于DevOps,Kubernetes,Linux,Docker,istio,微服务,Spring Cloud,python,go,数据库,Nginx,Tomcat,云计算等技术分享~
 最新文章