k8s——资源限制

时间:2022-07-24
本文章向大家介绍k8s——资源限制,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

注:以下只是在yaml文件中进行资源限制的一个片段,并不是完整的yaml文件

1、针对Pod的资源限制

// cgroup-pod.yaml 
spec:
  containers:
  - name: xxx
    image: xxx
    ports:
    - protocol: TCP
      containerPort: 80
    resources:
      limits:             //硬限制
        cpu: "4"
        memory: 2Gi
      requests:           //运行pod时请求的资源数量
        cpu: 260m
        memory: 260Mi

2、基于名称空间的资源限制(可以具体制定限制某一个名称空间)

//计算资源配额

// compute-resource.yaml 
apiVersion: v1
kind: ResourceQuota
metadata:
  name: compute-resources
spec:
  hard:
    pods: "20"         //所有pod数量不可以超过20个
    requests.cpu: "20"          //初始请求的CPU不可以超过20m
    requests.memory: 100Gi    //初始请求的内存不可以超过100G
    limits.cpu: "40"           //CPU的硬限制
    limits.memory: 200Gi        //内存的硬限制

//资源对象数量配额限制

// object-counts.yaml 
apiVersion: v1
kind: ResourceQuota
metadata:
  name: object-counts
spec:
  hard:
    configmaps: "10"      //最多可以创建10个configmap
    persistentvolumeclaims: "4"      //最多可以创建4个PVC
    replicationcontrollers: "20"              //最多可以创建20个RC资源对象
    secrets: "10"                   //最多可以创建10个secrets   
    service.loadbalancers: "2"      //最多可以创建2个svc

//配置CPU和内存的limitRange

// limitRange.yaml 
apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
  - default:        
      memory: 50Gi    //硬限制
      cpu: 5      //硬限制
    defaultRequest:       //初始请求
      memory: 1Gi
      cpu: 1
    type: Container        //限制对象为容器