Kubernetes之为Namespace配置CPU和内存配额
LiuSw Lv6

Kubernetes之为Namespace配置CPU和内存配额

k8s通过RBAC将不同团队(or 项目)限制在不同的namespace下,通过resourceQuota来限制该namespace能够使用的资源。

配额

资源分为以下三种。

  • 计算资源配额:cpu,memory

  • 存储资源配置:requests.storage(真~总量),pvc,某storage class下的限制(例如针对fast类型的sc的限制)

  • 对象数量配置:cm,service,pod的个数。

创建一个namespace

1
kubectl create namespace test

创建quota

1
2
3
4
5
6
7
8
9
10
11
12
13
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-resources
namespace: test
spec:
hard:
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
pods: "2" # pod数量配额
#requests.storage: 30Gi

创建ResourceQuota对象

1
kubectl create -f https://k8s.io/docs/tasks/administer-cluster/quota-mem-cpu.yaml --namespace=test

注意:
当开启了resource quota时,用户创建pod,必须指定cpu、内存的 requests or limits ,否则创建失败。resourceQuota搭配 limitRanges口感更佳:limitRange可以配置创建Pod的默认limit/request。

 评论