美文网首页
kubernetes资源对象之resourcequota

kubernetes资源对象之resourcequota

作者: 一舍 | 来源:发表于2020-04-23 11:20 被阅读0次

Resource Quotas,资源配额,是用来限制用户资源用量的一种机制。

使用资源配额前提条件

  • 在 API Server 启动时配置准入控制 --admission-control=ResourceQuota

  • 在 namespace 中创建一个 ResourceQuota 对象,并且每个 Namespace 最多只能有一个 ResourceQuota 对象

  • 创建容器时必须配置计算资源请求或限制(也可以用LimitRange 设置默认值)

  • 用户超额后禁止创建新的资源

资源配额类型

  1. 计算资源,包括 cpu 和 memory
  • cpu: limits.cpu, requests.cpu
  • memory:limits.memory, requests.memory
  1. 存储资源,包括存储资源的总量以及指定 storage class 的总量
  • requests.storage:存储资源总量
  • persistentvolumeclaims:pvc 的个数
  • .storageclass.storage.k8s.io/requests.storage
  • .storageclass.storage.k8s.io/persistentvolumeclaims
  • requests.ephemeral-storage 和 limits.ephemeral-storage (需要 v1.8+)
  1. 对象资源,即可创建的资源对象的个数
  • pods, replicationcontrollers, configmaps, secrets
  • resourcequotas, persistentvolumeclaims
  • services, services.loadbalancers, services.nodeports

资源配额限制

apiVersion: v1
kind: ResourceQuota
metadata:
  name: resources
  namespace: default
spec:
  hard:
    pods: "4"
    requests.cpu: "1"
    requests.memory: 1Gi
    limits.cpu: "2"
    limits.memory: 2Gi
    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
  namespace: 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

相关文章

网友评论

      本文标题:kubernetes资源对象之resourcequota

      本文链接:https://www.haomeiwen.com/subject/kyyoihtx.html