美文网首页Docker&Kubernetes
Kubernetes Cluster Autoscaler

Kubernetes Cluster Autoscaler

作者: Secret_Sun | 来源:发表于2020-11-19 00:19 被阅读0次

什么是 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 Cluster Autoscaler

    本文链接:https://www.haomeiwen.com/subject/dwahiktx.html