searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

coredns副本数replicas计算推导

2024-04-26 03:03:38
10
0

1.  计算公式及含义

coredns副本数计算公式:

replicas = max( ceil( cores × 1/coresPerReplica ) , ceil( nodes × 1/nodesPerReplica ) )

其中

  • cores:表示集群中的总核心数。
  • coresPerReplica:每个副本所需的核心数。
  • nodes:集群中的节点总数。
  • nodesPerReplica:每个副本所需的节点数。
  • ceil:向上取整函数,即取不小于该数的最小整数。

公式含义:在保证每个副本有足够的核心和节点资源的前提下,尽可能多地创建副本以提高系统的可用性或负载能力。这样的计算可以帮助自动扩展服务或应用程序,确保其能够有效地利用集群资源。

2.  计算公式推导

集群中coredns由dns-autoscaler控制dns的水平自动扩缩容,查看dns-autoscaler配置

eg:集群节点包括3个master、3个etcd、node节点4797个,其中master节点配置为 96C192G,etcd节点配置为8C32G,node节点2C4G

则总核心数cores:

cores = 3 * 96 + 3 * 8 + 4797 * 2 = 9906

以5000节点测试集群为例,已知当前集群总核心数cores=9906,节点数nodes=4803,每个副本所需核心数coresPerReplica当前配置为256,每个副本所需节点数nodesPerReplica当前配置为16.

则有

replicas = max( ceil( cores * 1/coresPerReplica ) , ceil( nodes * 1/nodesPerReplica ) )
= max(ceil(9906 * 1/256), ceil(4803 * 1/16))
= max(ceil(38.695), ceil(300.188))
= max(39,301)
= 301

因此,当前集群coredns数量为301个,验证:

 

3.  dns水平自动扩缩容工作原理

扩容参数和数据会基于ConfigMap提供给autoscaler,每次轮询时刷新参数表,以与最近期望的扩缩参数保持一致。
提供了两种控制模式:Linear和Ladder

0条评论
0 / 1000
贰拾画生
13文章数
0粉丝数
贰拾画生
13 文章 | 0 粉丝