24 名词解释 Resource Quotas

版权声明:本文为博主原创文章,如需转载请发邮件至[email protected]申请。 https://blog.csdn.net/denglelai123/article/details/80852985

Resource Quotas

资源配额(Resource Quotas)是用来限制用户资源用量的一种机制。
它的工作原理为
  • 资源配额应用在Namespace 上,并且每个Namespace最多只能有一个ResourceQuota对象
  • 开启计算资源配额后,创建容器时必须配置计算资源请求或限制(也可以用 LimitRange 设置默认值)
  • 用户超额后禁止创建新的资源

资源配额的启用

首先,在API Server启动时配置ResourceQuota adminssion control;然后在namespace中创建ResourceQuota对象即可。

资源配额的类型

  • 计算资源, 包括cpu和memory
    • cpu, limits.cpu, requests.cpu
    • memory, limits.memory, requests.memory
  • 存储资源, 包括存储资源的总量以及指定storage class的总量
    • requests.storage:存储资源总量,如500Gi
    • persistentvolumeclaims:pvc的个数
    • .storageclass.storage.k8s.io/requests.storage
    • .storageclass.storage.k8s.io/persistentvolumeclaims
  • 对象数, 即可创建的对象的个数
    • pods, replicationcontrollers, configmaps, secrets
    • resourcequotas, persistentvolumeclaims
    • services, services.loadbalancers, services.nodeports
计算资源示例
apiVersion : v1
kind : ResourceQuota
metadata :
name : compute - resources
spec :
hard :
pods : "4"
requests . cpu : "1"
requests . memory : 1Gi
limits . cpu : "2"
limits . memory : 2Gi
对象个数示例
apiVersion : v1
kind : ResourceQuota
metadata :
name : object - counts
spec :
hard :
configmaps : "10"
persistentvolumeclaims : "4"
replicationcontrollers : "20"
secrets : "10"
services : "10"
services . loadbalancers : "2"

LimitRange

默认情况下,Kubernetes中所有容器都没有任何CPU和内存限制。LimitRange用来给Namespace增加一个资源限制,包括最小、最大和默认资源。比如
apiVersion : v1
kind : LimitRange
metadata :
name : mylimits
spec :
limits :
- max :
cpu : "2"
memory : 1Gi
min :
cpu : 200m
memory : 6Mi
type : Pod
- default :
cpu : 300m
memory : 200Mi
defaultRequest :
cpu : 200m
memory : 100Mi
max :
cpu : "2"
memory : 1Gi
min :
cpu : 100m
memory : 3Mi
type : Container
$ kubectl create - f https : //k8s.io/docs/tasks/configure-pod-container/limits.yaml --namespace=limit-example
limitrange "mylimits" created
$ kubectl describe limits mylimits -- namespace = limit - example
Name : mylimits
Namespace : limit - example
Type Resource Min Max Default Request Default Limit Max Limit / Request Ratio ---- -------- --- --- --------------- ------------- ----------------------- Pod cpu 200m 2 - - - Pod memory 6Mi 1Gi - - - Container cpu 100m 2 200m 300m - Container memory 3Mi 1Gi 100Mi 200Mi -

配额范围

每个配额在创建时可以指定一系列的范围
范围
说明
Terminating
podSpec.ActiveDeadlineSeconds>=0的Pod
NotTerminating
podSpec.activeDeadlineSeconds=nil的Pod
BestEffort
所有容器的requests和limits都没有设置的Pod(Best-Effort)
NotBestEffort
与BestEffort相反


猜你喜欢

转载自blog.csdn.net/denglelai123/article/details/80852985