kubernetes - 在 AKS 中缩减后将所有 pod 移动到同一节点
问题描述
我们在 AKS 中有一个部署,我们在晚上缩减到 3 次,早上最多缩减到 9 次。
一个节点上只有 3 个这些 pod 的资源。所以早上 AKS 应该创建 2 个新节点。
但是发生的情况是,晚上的缩减有时会杀死每个节点上的 2 个 pod,以保持 3 个运行节点和 1 个 pod。有时 2 个节点,1 个有 1 个 pod,1 个有 2 个 pod。
我们想要的是在晚上运行 1 个节点和 3 个 pod。
我们怎样才能做到这一点?
解决方案
您是否检查过Cluster Autoscaler?从理论上讲,这可以帮助实现您的要求?
Cluster Autoscaler 是一个独立的程序,它可以调整 Kubernetes 集群的大小以满足当前的需求。
Cluster Autoscaler 是一个在以下条件之一为真时自动调整 Kubernetes 集群大小的工具:
- 由于资源不足,集群中存在运行失败的 pod。
- 集群中存在长时间未充分利用的节点,它们的 pod 可以放置在其他现有节点上。
为什么这个自动缩放器或集群自动缩放器与基于 CPU 使用的节点自动缩放器有何不同?
Cluster Autoscaler 确保集群中的所有 pod 都有运行的地方,无论是否有任何 CPU 负载。此外,它试图确保集群中没有不需要的节点。
基于 CPU 使用(或任何基于指标)的集群/节点组自动扩缩器在扩展和缩减时不关心 Pod。因此,他们可能会添加一个没有任何 pod 的节点,或者删除一个上面有一些系统关键 pod 的节点,例如 kube-dns。不鼓励将这些自动缩放器与 Kubernetes 一起使用。
推荐阅读
- angular - 路由器在angular6位置不起作用
- vuejs2 - 道具在价值变化时没有在子组件中更新
- sql - SQL中的组合表
- oracle - oracle如何创建olap用户?
- r - 为什么变量名 (var_3) 不出现在输出中?
- ios - How can I use "updateTextAttributes(conversionHandler:)" that needs to return a value
- java - Using Prometheus to monitor Spring Boot Applications in Kubernetes Cluster
- javascript - Is there a way to query for a Firestore collection to get the number of times a field's value occurs?
- oracle - 通过连接到远程数据库在气流中创建 dag 的步骤
- laravel - Laravel File Manager 404 error on Laravel 6