简介
组件介绍
DNSAutoscaler 是 DNS 自动水平伸缩组件,可通过一个 deployment 获取集群的节点数和核数,根据预设的伸缩策略,自动水平伸缩 DNS 的副本数。目前的伸缩模式分为两种,分别是 Linear 线性模式 和 Ladder 阶梯模式。
Linear Mode
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)
Ladder Mode
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。
部署在集群内的 Kubernetes 对象
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 |
限制条件
仅在 1.8 版本以上的 kubernetes 集群支持。集群中的 dns server 的工作负载为 deployment/coredns。
特别说明
CoreDNS 的水平伸缩可能导致部分副本在一段时间内不可用,强烈建议安装该组件前,进行相关的优化配置,最大程度保证 DNS 服务的可用性,具体可参考 配置 CoreDNS 平滑升级。
使用方法
1. 登录 容器服务控制台,在左侧导航栏中选择集群。2. 在集群管理页面单击目标集群 ID,进入集群详情页。3. 选择左侧菜单栏中的组件管理,进入组件列表页面,单击新建。4. 在新建组件页面中勾选 DNSAutoscaler。该组件默认伸缩配置策略如下:
data: ladder: |- { "coresToReplicas": [ [ 1, 1 ], [ 128, 3 ], [ 512,4 ], ], "nodesToReplicas": [ [ 1, 1 ], [ 2, 2 ] ] }
扩展组件创建成功后,可以通过修改 kube-system 命名空间下的 configmap/tke-dns-autoscaler
来变更配置。详细配置请参见 官方文档。5. 单击完成即可创建组件。
容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
转转请注明出处:https://www.yunxiaoer.com/147593.html