Управление максимальным количеством ресурсов, используемых пространством имен k8s
Как можно контролировать максимальное количество ресурсов, которые когда-либо будут использоваться (в данный момент) всем, что работает в определенном пространстве имен k8s. (Макс. Память, макс. ЦП)?
2 ответа
Это может быть выполнено с помощью ResourceQuota в данном пространстве имен.
Из документов:
Квота ресурсов, определяемая объектом ResourceQuota, обеспечивает ограничения, которые ограничивают совокупное потребление ресурсов для каждого пространства имен. Он может ограничивать количество объектов, которые могут быть созданы в пространстве имен по типу, а также общий объем вычислительных ресурсов, которые могут потребляться ресурсами в этом проекте.
Квота ресурсов определяется так (из документации администратора k8s):
apiVersion: v1
kind: ResourceQuota
metadata:
name: mem-cpu-demo
spec:
hard:
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
Примечание: эта информация взята из документации k8s v1.16.
Определите объекты квоты ресурсов для каждого пространства имен. вы можете установить максимальное количество вычислительных ресурсов для каждого пространства имен, а также определить количество объектов, которые будут развернуты в каждом пространстве имен. следуйте приведенным ниже образцам
apiVersion: v1
kind: ResourceQuota
metadata:
name: mem-cpu-demo
namespace: quota-mem-cpu-example
spec:
hard:
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
----
The ResourceQuota places these requirements on the quota-mem-cpu-example namespace:
Every Container must have a memory request, memory limit, cpu request, and cpu limit.
The memory request total for all Containers must not exceed 1 GiB.
The memory limit total for all Containers must not exceed 2 GiB.
The CPU request total for all Containers must not exceed 1 cpu.
The CPU limit total for all Containers must not exceed 2 cpu.
similarly define object quota
apiVersion: v1
kind: ResourceQuota
metadata:
name: object-quota-demo
namespace: quota-object-example
spec:
hard:
persistentvolumeclaims: "1"
services.loadbalancers: "2"
services.nodeports: "0"
Which implies that there can be at most one PersistentVolumeClaim, at most two Services of type LoadBalancer, and no Services of type NodePort.
reference: https://kubernetes.io/docs/tasks/administer-cluster/quota-api-object/