Kubernetes Cluster Autoscaler

什么是 Cluster Autoscaler

  • 首先你需要有一朵云「公有 Or 私有」
  • Node 不足 Or Node GG 是一件很麻烦的事情
  • CA 很好的解决了,根据预先给到的上下限 Node 数 & 利用率自动 Up & Down

CA 模块拆解

  • autoscaler: 核心模块,扩缩容功能
  • Estimator: 计算扩容节点 「Bin Packing Problem
  • Simulator:模拟调度,计算缩容节点
  • Cloud Provider: 云厂商交互核心「厂商好不好主要看这个 & 虚拟机弹性」

核心代码逻辑

main.go - run(healthCheck) - autoscaler.RunOnce(loopStart)
  core/autoscaler.go - static_autoscaler.go - RunOnce # 判断是否需要 Up Or Down
    scale_up.go - ScaleUp - context.ExpanderStrategy.BestOption
      estimator/binpacking_estimator.go #核心算法
Up & Down

注意点

  • Down:watch 现有 node 的情况,利用 cpu + mem 的利用率情况来进行评估是否需要缩多少,如果 Node 为空为批量操作,如果 Node 不为空为 For 循环
  • Up:这个就比较简单了,当看到有 Pod Pending 的话,就开始同样使用 cpu + mem 希望用的量来进行计算得出多少 Node 后通知云 API 进行扩容 ,Bin Packing Problem 为核心算法 「类似出去玩整理行李」
  • 综上:如果当弹性出现致命问题的时候
    • 厂商无机器「库存问题」
    • 厂商 Down & Up 回调 k8s api 出现问题 「占着坑位 Or 坑位门关了但是里面没东西」
    • 厂商 Up 机器过慢的问题么,就是虚拟机的问题了

文档总结

Ps. 别人写的很好 ...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 在业务上了kubernetes集群以后,容器编排的功能之一是能提供业务服务弹性伸缩能力,但是我们应该保持多大...
    YichenWong阅读 8,398评论 3 8
  • 当我们使用 Kubernetes 部署应用后,会发现如果用户增长速度超过预期,以至于计算资源不够时,你会怎么做呢?...
    baiyi阅读 7,104评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 12,186评论 16 22
  • 创业是很多人的梦想,多少人为了理想和不甘选择了创业来实现自我价值,我就是其中一个。 创业后,我由女人变成了超人,什...
    亦宝宝阅读 5,845评论 4 1
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 13,585评论 0 11