-
定义资源请求(requests)与限制(limits):在Pod的YAML配置中,通过
resources
字段设置容器的CPU和内存的requests
(最低需求)和limits
(最大用量)。示例:resources: requests: cpu: "100m" memory: "128Mi" limits: cpu: "200m" memory: "256Mi"
-
使用ResourceQuota限制命名空间资源:通过
ResourceQuota
限制整个命名空间的资源总量,防止过度分配。示例:apiVersion: v1 kind: ResourceQuota metadata: name: quota-example spec: hard: requests.cpu: "10" requests.memory: 20Gi limits.cpu: "20" limits.memory: 40Gi
-
监控与调整:通过
kubectl top pod
或监控工具(如Prometheus)分析资源利用率,动态调整requests
和limits
以匹配实际负载。 -
启用Horizontal Pod Autoscaler(HPA):根据负载自动扩缩Pod数量,避免静态资源分配导致的浪费。
-
设置默认LimitRange:在命名空间中创建
LimitRange
对象,为未显式声明资源限制的Pod提供默认值。示例:apiVersion: v1 kind: LimitRange metadata: name: default-limits spec: limits: - default: cpu: "500m" memory: "512Mi" type: Container
通过以上步骤,可有效限制资源分配,减少浪费并提升集群稳定性。