Kubernetes资源配额的使用与实践
1. 资源配额问题提出
在为Kubernetes中Pod的容器分配资源时,存在一些未被考虑的因素。不同开发团队的资源需求不同,如果一个团队占用了节点上的大部分资源,其他团队将无法在同一节点上运行应用。而且在应用开发的不同阶段,如开发、测试和生产,资源需求也有差异。此前的资源分配模式无法解决这些问题。
2. 解决方案:Kubernetes弹性配额
Kubernetes提供了弹性配额的管理设计模式,虽然不是完全弹性,但会基于一定范围设置一个相对灵活的固定上限。资源配额用于限制特定命名空间中某些资源的使用,是对命名空间内资源总使用量的限制,而非针对特定对象。其目的是为不同团队公平分配资源,每个团队被分配带有配额的命名空间。同时,也可针对不同应用阶段(生产、开发、测试)创建不同的命名空间并设置不同的资源配额。创建或更新资源时不能超过配额限制,否则资源将无法创建或更新,并会生成错误信息。
配额可设置在计算资源(CPU和内存)和对象数量(如Pod、复制控制器、服务、负载均衡器和ConfigMaps等)上。设置计算资源配额时,必须为这些资源指定请求或限制。配额默认启用,集群总容量(会因节点增减而变化)不是设置配额的限制因素,命名空间配额总和可能超过集群容量,资源竞争将按先到先得的原则解决。资源竞争在资源创建前解决,不影响已创建的资源,且资源创建后,配额设置的更改也不会影响该资源。
3. 资源配额的范围
配额可与范围关联,进一步限制其应用的资源类型。可用范围包括:
- Terminating :适用于会终止的Pod。
-
超级会员免费看
订阅专栏 解锁全文
1334

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



