资源配额

  1. resources
  2. limitrange
  3. resourcequota

resources

【位置】 pod.spec.containers

# 内存单位 Mi Gi,cpu单位m
resources:
  requests:
	cpu: 100m  # 1000m=1核cpu
	memory: 1000Mi #memory: 1Gi
  limits:
	cpu: 100m
	memory: 1000Mi
	nvidia.com/gpu: 1 

LimiteRange

从命名空间的角度对容器进行资源限制,是对resources 的默认值,最大值,最小值的限制。

apiVersion: v1
kind: LimitRange
metadata:
  name: cpu-min-max-demo-lr
  namespace: study
spec:
  limits:
  - max:
      cpu: "1000m"  # 最大值
      memory: 2Gi  
    min:  
      cpu: "200m"   # 最小值
      memory: 512Mi 
    maxLimitRequestRatio:
      cpu: 5        # 指定limit / request 的最大比值
      memory: 4    # 指定 limit / request 的最大比值
    type: pod
  - max:
      cpu: "512m"  # 最大值
      memory: 1Gi  
    min:  
      cpu: "100m"   # 最小值
      memory: 256Mi 
    default:
      cpu: 1        # 当容器没有指定 resouces.limits.cpu时指定为1核
      memory: 512Mi  # 当容器没有指定 resouces.limits.memory时指定为512Mi
    defaultRequest:
      cpu: 0.5      # 当容器没有指定 resouces.requests.cpu时指定为0.5
      memory: 256Mi  # 当容器没有指定 resouces.requests.memory时指定为256Mi
    maxLimitRequestRatio:
      cpu: 5        # 指定limit / request 的最大比值
      memory: 4    # 指定 limit / request 的最大比值
    type: Container  # 指定作用范围, 在 kubectl get limits cpu-min-max-demo-lr -o yaml  中type为pvc

resourceQuota

对名称空间资源的限制,包括cpu memory pod configmap secrete services等

apiVersion: v1
kind: ResourceQuota
metadata:
  name: cpu-mem-pod-max
  namespace: study
spec:
  hard:
    # comput-quota
    requests.cpu: "1"
    requests.memory: 1Gi
    limits.cpu: "2"
    limits.memory: 2Gi
    # resouces-quota
    configmaps: "10"
    persistentvolumeclaims: "4"
    pods: "4"
    replicationcontrollers: "20"
    secrets: "10"
    services: "10"
    services.loadbalancers: "2"
kubectl describe quota -n study

查询容器的资源使用状态

docker stats -a
docker stats 容器ID

查询名称空间的资源限额

kubectl describe limits -n study 

查看名称空间资源配额

kubectl describe quota -n study
posted @ 2021-09-12 11:26  mingtian是吧  阅读(173)  评论(0编辑  收藏  举报