Kubernetes Cluster Autoscaler 原理 & 对接介绍
Autoscaler 简介 Autoscaler 是 Kubernetes 弹性伸缩的一个组件集合,主要包含三个组件: Cluster Autoscaler / CA:用于自动调整 Kubernetes 集群大小,以便所有 Pod 都能被调度到 Node 上运行,且没有多余的无负载 Node。GA 版本已随 Kubernetes 1.8 版本发布。 Vertical Pod Autoscaler / VPA:用于自动调整在 Kubernetes 中运行的 Pod 请求的 CPU 和内存量的一组组件。目前处于 beta 版本,主要由 3 个部分组成: Recommender:监控 Pod 的当前和过去的资源消耗,根据监控数据计算推荐的 CPU 和内存建议值。 Updater:检查 Pod 是否使用 Recommender 推荐的资源建议值,如果 Pod 没有使用推荐值,Updater 会尝试驱逐该 Pod。 Admission Plugin:在新的 Pod 上设置 Recommender 推荐的资源建议值。 Addon Resizer:VPA 的简化版,根据集群中 Node 数量修改资源请求。 CA 工作原理 工作流程 CA 顶层工作流程: 每 10s 检查集群是否存在无法被调度的 Pod 集群中没有足够资源分配给这些 Pod,CA 会触发云厂商 Provider 执行扩容流程 云厂商支持新节点加入集群 Pod 调度至新加入集群的 Node 核心控制循环 CA 是一个 CLI 应用程序。启动时,它会触发无限控制循环逻辑,每 10 秒执行一次。它会检查集群状态,以决定是否执行扩容或缩容操作。...