Kubernetes大规模集群

Kubernetes资源限制

Kubernetes 单个集群支持的最大节点数为 5,000。Kubernetes标准的配置:

  • 每个节点的 Pod 数量不超过 110
  • 节点数不超过 5,000
  • Pod 总数不超过 150,000
  • 容器总数不超过 300,000

你可以通过添加或删除节点来扩展集群。集群扩缩的方式取决于集群的部署方式

Kubernetes集群设计

多云设计

  1. 方案一,多个可用区组成高可用Kubernetes业务集群,可以解决以下风险
    • Kubernetes升级造成的未知风险
    • Kubernetes业务集群瘫痪、脑裂等问题
    • Kubernetes调度故障、服务故障、环境问题等
  2. 方案二,IDC+公有云方式,需要企业IDC与公有云机房建立专线连接,使其符合企业业务可接受的响应时间

业务集群

当企业业务规模很大,通常会按业务线、业务关联性、业务核心级别等其它属性创建独立的集群,提高业务可用性,服务快速响应

控制面组件

控制面组件高可用,Kubernetes支持控制面组件跨多个failure zones,是一个region的逻辑隔离区域,公有云厂商称之为可用区,在不同的可用区提供相同的服务(Kubernetes控制面组件,APIServer、Controller manager、scheduler manager)

ETCD

https://v1-27.docs.kubernetes.io/zh-cn/docs/setup/best-practices/cluster-large/#etcd-storage

https://v1-27.docs.kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/ha-topology/#stacked-etcd-topology

如果希望ETCD与Kubernetes控制面组件独立,可以独立部署,提高节点故障冗余性

Kubernetes节点冗余

根据可用区设计服务高可用

在企业S级服务运行的Kubenetes node可以分布在不同的公有云可用区,这些节点打应用服务标签,运行企业核心服务以此提高服务的高可用性

如果你的集群跨了多个可用区或者地理区域,你可以使用节点标签,结合 Pod 拓扑分布约束 来控制如何在你的集群中多个失效域之间分布 Pods。这里的失效域可以是 地理区域、可用区甚至是特定节点。 这些提示信息使得调度器 能够更好地分布 Pods,以实现更好的可用性,降低因为某种失效给整个工作负载 带来的风险

根据服务资源的特性设计

在不同的可用区定义不同的规格的服务器(高IO型、计算型、内存型、通用型)打上对应的标签,实现不同类型的服务调度到所需要的资源类型节点

根据服务类型划分节点分类

企业服务经常会有前端服务、后端服务、基础服务、数据库等,根据服务功能为节点打不同的标签,实现不同类型的服务被调度不同的节点上

posted @ 2024-08-25 15:50  MacoPlus  阅读(22)  评论(0编辑  收藏  举报