kubernetes GKE中服务缩减后节点拉力如何减小

qvk1mo1f  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(1)|浏览(123)

我在一个节点池中有6个节点的工作负载,以及一些服务,假设是3 n + k。然后我将它们缩减到n + k的数量,所有节点的负载从80%减少到大约45- 50%,我希望重新调度我的服务以减少节点的总数,但这并没有发生。为什么?还要等吗?我需要做一些其他的动作吗?

rjjhvcjd

rjjhvcjd1#

一旦负载减少到45%到50%,GKE应该自动重新安排节点之间的工作负载,以有效地利用资源。但是,这个过程可能需要一些时间,因为Kubernetes将节点保存在缓冲区中,并在一定时间内期望相同的流量。如果预期的流量没有实现,Kubernetes最终应该自行采取行动来重新平衡工作负载。如果未执行此活动或未执行节点缩减,则可能是由于以下原因:

  1. Pod中断预算:如果为工作负载设置了Pod中断预算(PDB),GKE将无法杀死节点上正在运行的Pod,这将防止节点流失。PDB定义了在中断期间必须可用的最小Pod数量,并且它们可以在不满足PDB约束时防止GKE耗尽节点。
    1.使用节点存储的Pod:如果一个pod正在使用节点上的本地存储,Kubernetes将避免杀死该pod以避免数据丢失。在这种情况下,工作负载不会被重新安排,直到Kubernetes可以安全地终止pod而不会丢失数据。
    1.添加safe to evict annotation:通过向部署添加eviction annotation,管理员可以确保更好地重新安排pod,从而缓解因pod未按预期被驱逐而导致的潜在问题。
apiVersion: v1
kind: Pod | Deployment
metadata:
  annotations:
    cluster-autoscaler.kubernetes.io/safe-to-evict: "true"

字符串
要解决节点缩减和工作负载重新安排的问题,您应该检查并解决以上几点。如果有Pod中断预算,请考虑对其进行调整,以便在节点耗尽期间实现更大的灵活性。此外,如果pod使用本地存储,请考虑将其迁移为使用网络附加存储或其他持久性存储解决方案,以实现更好的工作负载重新分配。一旦这些问题得到解决,Kubernetes应该能够有效地基于pod负载和资源利用率来处理节点缩减。

相关问题