Kubernetes 资源管理与调度优化指南
1. 资源请求与限制基础
在 Kubernetes 中,为 Pod 设置足够高的资源请求值至关重要,这样能确保它们有足够的资源来运行,同时要避免完全不设置资源请求。对于高优先级的关键工作负载,应始终将资源限制设置为与请求相等,以保证性能。
2. 驱逐、优先级和抢占机制
在资源竞争激烈(多个 Pod 同时突发请求资源)时,Kubernetes 会通过驱逐(evicting)那些使用资源超过请求分配的 Pod 来回收资源。因此,准确指定 Pod 的资源非常重要。
- 驱逐(Eviction) :
- 保证类(Guaranteed class)的 Pod 永远不会被驱逐,所以为了实现可靠的部署,应将限制设置为与请求相等。
- 对于非保证类 Pod,Kubernetes 在选择驱逐对象时,会考虑那些使用资源超过请求的 Pod,先按优先级排序,再按超出请求的资源量排序。默认情况下,所有 Pod 的优先级都为 0,因此超出请求的使用量是排序的依据。
- 如果查询 Pod 时看到“Evicted”状态,说明调度器因 Pod 使用资源超过请求而将其驱逐。解决方法是增加容器请求的资源,并考虑是否需要增加集群的计算容量。
- 优先级(Priority) :
- 优先级是一个介于 0 到 1,000,000,000 之间的整数,可通过“优先级类(PriorityClass)”分配给 Pod 来改变排序。
- 创建自定义优先级类的示例代码如下:
超级会员免费看
订阅专栏 解锁全文
1328

被折叠的 条评论
为什么被折叠?



