原创 吴就业 159 0 2024-03-18
本文为博主原创文章,未经博主允许不得转载。
本文链接:https://wujiuye.com/article/3d178b251d6b4bcaa081d3de628c1251
作者:吴就业
链接:https://wujiuye.com/article/3d178b251d6b4bcaa081d3de628c1251
来源:吴就业的网络日记
本文为博主原创文章,未经博主允许不得转载。
前面文章提到,我们想基于Google的论文:Autopilot: workload autoscaling at Google
,实现Pod的requests预测算法,通过预测接近真实值的requests,再结合基于scheduler-plugins实现负载均衡调度器,来实现计算资源按需付费的Serverless引擎。
这里的超卖是指按limit超卖,不是按request超卖。例如,有一个16g内存的虚拟机,我可以用来部署很多个Pod,对于每个Pod来说,它们都认为自己有16G的最大内存使用。
有其它同事提问,如果是Java应用,这种超卖会不会很容易导致大面积重启?
这就要看requests的预测算法效果了,但如果预测的结果不是特别离谱,也不会出现大面积重启的情况。 如果只是突增预测不准,那也只是个别应用会重启。
举个例子:假如在一个16g内存的节点上,部署了4个request为3g内存的Pod,总共消耗12g内存。然而根据目标负载均衡调度算法,我们可以控制这个节点不会部署request总共超过12g内存的Pod,即75%的目标负载。那么有4g是可以容错算法的偏差的,以及4个Pod的个别Pod流量的正常突增。
正常request的误差假如在1g内,那么4个pod同时实际负载超过request+1g的概率是极低的。
假如有一个pod突增非常严重,那么这个pod会优先被kubelet干掉重启,同时算法会预测新的request,request会重新被预测的非常大,会被调度到资源更多的另一个节点上(或者触发申请新的节点),不会影响其它Pod。
超卖其实就是赌徒思想,堵的就是概率。一个节点上的个别Pod异常突增的概率都很小,同时很多Pod一起异常突增的概率更小。
声明:公众号、CSDN、掘金的曾用名:“Java艺术”,因此您可能看到一些早期的文章的图片有“Java艺术”的水印。
本篇是作者在云原生PaaS平台项目中实战可观测能力做的技术调研,将关键技术知识点讲透,涉及:如何获取Pod的cpu和内存指标、使用Grafana Agent收集指标、上传到Prometheus。
本篇是作者在云原生PaaS平台项目中实战可观测能力做的技术调研,将关键技术知识点讲透,涉及:如何获取Pod的标准输出(stdout)日志、如何使用Grafana Agent收集日志(附配置案例讲解)、如何将日志上传Grafana Loki。
不禁感叹,k8s这个底座设计的太牛了,我们不仅可以通过CRD + 控制器做扩展,还可以自定义APIService去做扩展。k8s,牛啊!
kubectlx是一款基于go-prompt库开发的k8s命令行工具,目的是简化kubectl工具的一些常用命令的使用, 并提供命令输入提示、自动补全。
订阅
订阅新文章发布通知吧,不错过精彩内容!
输入邮箱,提交后我们会给您发送一封邮件,您需点击邮件中的链接完成订阅设置。