Управление максимальным количеством ресурсов, используемых пространством имен 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/
Другие вопросы по тегам