看腾讯如何提升 Kubernetes 集群利用率?( 三 )
文章图片
当平台规模较大或在线、离线业务均具有的情况下 , 一般都需要使用在离线混部的方式提升资源利用率 。
文章图片
其实现逻辑较为简单:当集群资源充足时 , 动态地将离线任务调度到空闲节点上;当节点资源接近高负载阈值时 , 优先驱逐离线任务 。
负载提升和稳定性优化通过各种手段提升集群利用率的同时 , 也会带来相应的负面问题:
引起Node节点高负载 , 影响服务质量;Node节点负载不均;剩余剩余资源不足导致Pod横向度失败 。
针对以上负面问题 , 通常需要使用扩容及稳定性相关的手段来解决 。
第一 , 两级扩容机制 。
文章图片
HNA:当集群负载(装箱率)达到阈值(如85%)时 , 会触发节点自动扩缩容 , 来增加Node节点;
超级节点:当工作负载引发大量扩容、集群资源不足而导致Pod突增时 , 利用超级节点(通过VirtualKubelet加入集群的虚拟Node)直接将Pod扩容到VirtualKubelet节点上 , 超级节点的底层直接使用腾讯云公有云资源池创建弹性Pod 。
第二 , 两级动态超卖 。
文章图片
通常情况况下 , Pod压缩与Node超卖两种手段需同时使用 。 Pod压缩已实现从静态到动态的优化 , 其压缩比(Request/limit)可以根据历史状态进行动态修改 。
同样 , Node超卖也实现了由静态向动态的升级 , Node节点可以根据实时负载进行动态调整 , 以防止节点负载过高 。
第三 , 动态调度 。
动态调度机制可以实现保证Node节点的资源均衡 , 避免不同Node节点负载不均的现象 。
文章图片
上图可以看到 , 原生调度为静态调度且Node2空闲资源较多 , 那么根据静态调度策略 , 会将新的Pod调度到Node2节点中 。 但经过动态调度的算法优化 , 实际上会将Pod调度到Node1节点上 , 这是什么原因呢?
这是因为Node1节点的真是利用率更低所致的 , 将Pod调度至Node1上会提高Node的Pod利用率 , 进而使各节点的平均负载相近 。
文章图片
上图是动态调度机制的原理 , ExtendNodeScorer会根据不同时段的信息参数对Node进行打分 , Kube-scheduler调度器可获取这些参数信息进而将新增Pod调度至实际内存使用更低的节点上 。
第四 , 动态驱逐 。
文章图片
当Node负载不均或Node利用率过高时 , 大概率会对节点上运行的Pod资源产生影响 。 这种情况下 , 我们可以根据节点当前的状态信息以及节点上Pod的实际利用率对Pod进行动态驱逐 。 这里的参考维度是多样的 , 一般包括:CPU、Memory、FD、Inode等 , 且不同业务针对参数的权重与指标也存在差异 。
文章图片
上图是某一在线业务集群的状态 , 可以清晰看到在经过超卖及压缩后 , 该集群的节点平均利用率可达38.7% 。
文章图片
节点负载分布(未采用动态调度及动态驱逐)
文章图片
节点负载分布(采用动态调度及动态驱逐)通过以上两图对比 , 我们可以看到:在未采用动态调度及动态驱逐时 , 节点负载不均衡同时方差值较大 。 而在采用了动态调度及动态驱逐后 , 节点负载便会趋于稳定 , 异常Node数目减少 , 资源利用率得到有效提高 。
- 显示器|498元27寸国产显示器开箱,这么便宜体验效果如何?
- 本文转自:新华网新华网北京8月17日电(凌纪伟)8月20—27日|打卡2022北京科技周活动主场,这些看点别错过
- 腾讯|赚更多会员费?QQ音乐与蔚来汽车达成合作:将上线杜比音乐服务
- 本文转自:新华社新华社照片|在这里,看见智能生活新未来
- 财报|腾讯视频会员达1.22亿!自制《梦华录》全网播放量第一
- 腾讯|充值腾讯业务的用户越来越多了:视频和音乐会员合计超2亿
- 腾讯|裁员5498人、水果不再免费 腾讯开始省钱:“蚊子肉”也不放过
- 腾讯|腾讯截至6月底超11万员工:平均月薪达8.54万元
- 物理学家用相对论破解意识之谜引热议,网友直呼看不明白
- 本文转自:中国电子报今年夏天的“热”|“双碳”目标下,电器行业应该如何加快绿色低碳转型