Это сущность, которая используется для управления ограничением ресурсов, которые могут быть назначены контейнерам в подах, подам и PVC (PersistentVolumeClaim). Не обязательно назначать их все, можно указывать только те, что нужно конкретно вам, но ниже я приведу полный манифест:
apiVersion: v1
kind: LimitRange
metadata:
name: resource-limit-range
namespace: default
spec:
limits:
- type: Container
max:
cpu: "2"
memory: "2Gi"
ephemeral-storage: "4Gi"
min:
cpu: "200m"
memory: "256Mi"
ephemeral-storage: "500Mi"
default:
cpu: "500m"
memory: "1Gi"
ephemeral-storage: "1Gi"
defaultRequest:
cpu: "250m"
memory: "512Mi"
ephemeral-storage: "500Mi"
- type: Pod
max:
cpu: "4"
memory: "4Gi"
ephemeral-storage: "8Gi"
min:
cpu: "500m"
memory: "512Mi"
ephemeral-storage: "1Gi"
- type: PersistentVolumeClaim
max:
storage: "100Gi"
min:
storage: "1Gi"
default:
storage: "10Gi"
defaultRequest:
storage: "5Gi"
Есть три типа (type):
1. Container - ограничения для контейнеров. В max - мы задаем максимально возможное значение для контейнера по памяти, CPU, временному хранилищу.
В min соответственно минимальные значения.
default - это дефолтное значение лимита, которое будет автоматически применено, если в манифесте ничего не указано.
defaultRequest - тоже что и default, но только для request.
2. Pod - здесь мы можем задать минимальные и максимальные значения для пода. Но не забываем, что в поде может быть далеко не один контейнер, поэтому обычно ограничивают именно контейнеры.
3. PersistentVolumeClaim - ограничение для pvc (запроса на сторадж), параметры аналогичные типу container, но вместо памяти и CPU, размер стораджа.
#kubernetes