DNSAutoscaler 是 DNS 自动水平伸缩组件,可通过一个 deployment 获取集群的节点数和核数,根据预设的伸缩策略,自动水平伸缩 DNS 的副本数。目前的伸缩模式分为两种,分别是 Linear 线性模式 和 Ladder 阶梯模式。
ConfigMap 配置示例如下:
data:
linear: |-
{
"coresPerReplica": 2,
"nodesPerReplica": 1,
"min": 1,
"max": 100,
"preventSinglePointFailure": true
}
目标副本计算公式:
replicas = max( ceil( cores _ 1/coresPerReplica ) , ceil( nodes _ 1/nodesPerReplica ) )
replicas = min(replicas, max)
replicas = max(replicas, min)
ConfigMap 配置示例如下:
data:
ladder: |-
{
"coresToReplicas":
[
[ 1, 1 ],
[ 64, 3 ],
[ 512, 5 ],
[ 1024, 7 ],
[ 2048, 10 ],
[ 4096, 15 ]
],
"nodesToReplicas":
[
[ 1, 1 ],
[ 2, 2 ]
]
}
目标副本计算:
假设 100nodes/400cores 的集群中,按上述配置,nodesToReplicas 取2(100>2),coresToReplicas 取3(64<400<512),二者取较大值3,最终 replica 为3。
kubernets 对象名称 | 类型 | 请求资源 | 所属 Namespace |
---|---|---|---|
tke-dns-autoscaler | Deployment | 每节点20mCPU,10Mi内存 | kube-system |
dns-autoscaler | ConfigMap | - | kube-system |
tke-dns-autoscale | ServiceAccount | - | kube-system |
tke-dns-autoscaler | ClusterRole | - | kube-system |
tke-dns-autoscaler | ClusterRoleBinding | - | kube-system |
data:
ladder: |-
{
"coresToReplicas":
[
[ 1, 1 ],
[ 128, 3 ],
[ 512,4 ],
],
"nodesToReplicas":
[
[ 1, 1 ],
[ 2, 2 ]
]
}
扩展组件创建成功后,可以通过修改 kube-system 命名空间下的 configmap/tke-dns-autoscaler
来变更配置。详细配置请参见 官方文档。
本页内容是否解决了您的问题?