ToB企服应用市场:ToB评测及商务社交产业平台

标题: k8s资源限制之LimitRange和ResourceQuota [打印本页]

作者: 温锦文欧普厨电及净水器总代理    时间: 2024-5-15 00:02
标题: k8s资源限制之LimitRange和ResourceQuota
在Kubernetes中,LimitRange和ResourceQuota都是用于资源管理的工具,但它们的目标、作用范围和使用方式有所差别。
作用范围

LimitRange是在Pod和容器级别上进行资源限制的工具,重要用于设定CPU和内存两种计算资源的可用范围,并且还可以支持在PersistentVolumeClaim资源级别设定存储空间的范围限制。ResourceQuota则作用于命名空间级别,用于限制命名空间中的资源使用量,例如Pod的数量、特定类型的资源对象的数量(如Services、Deployments等)以及命名空间内所有Pod可以使用的计算资源总量(如CPU、内存等)。
关注点

LimitRange重要关注资源的最小和最大限制,以确保公平性,例如设定Pod或容器的requests和limits属性必须在指定的资源范围内,否则将会被拒绝。而ResourceQuota重要关注资源的总量和分配,旨在防止资源的过度消耗和竞争,确保在多用户共享Kubernetes集群时,每个命名空间的资源使用量不会超过其配额限制。
默认值处理惩罚

当容器未显式指定request和limit属性时,LimitRange可以提供默认的requests和limits值给容器,这是变异型准入控制器的功能。ResourceQuota不提供这样的默认功能,而是要求显式地在创建资源时指定这些属性。
LimitRange

LimitRange用于限制命名空间中Pod和容器的资源使用范围。它可以设定最小和最大的CPU、内存等资源限制,并可以提供默认值和默认哀求值。LimitRange重要关注资源的公平性和防止单个Pod或容器消耗过多资源。
LimitRange YAML示例
  1. apiVersion: v1
  2. kind: LimitRange
  3. metadata:
  4.   name: example-limitrange
  5. spec:
  6.   limits:
  7.   - default:
  8.       cpu: 500m
  9.       memory: 512Mi
  10.     defaultRequest:
  11.       cpu: 200m
  12.       memory: 256Mi
  13.     type: Container
复制代码
在这个示例中,LimitRange设置了容器的默认CPU和内存限制(default)以及默认哀求(defaultRequest)。
ResourceQuota

ResourceQuota用于限制命名空间的资源总量,包括Pod数量、各种资源对象的总数以及Pod可以使用的计算资源总量。它重要用于多租户环境,以确保每个租户的资源使用都在其配额范围内。
ResourceQuota YAML示例
  1. apiVersion: v1
  2. kind: ResourceQuota
  3. metadata:
  4.   name: example-resourcequota
  5. spec:
  6.   hard:
  7.     pods: "10"
  8.     requests.cpu: "1"
  9.     requests.memory: "2Gi"
  10.     limits.cpu: "2"
  11.     limits.memory: "4Gi"
复制代码
在这个示例中,ResourceQuota限制了命名空间中可以创建的Pod数量为10个,以及Pod可以哀求的CPU和内存总量,另有可以设置的CPU和内存限制总量。
对比

它们通常一起使用,以实现对Kubernetes集群中资源的全面管理和控制。通过公道设置LimitRange和ResourceQuota,可以确保资源的公道分配和使用,防止资源的浪费和争用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4