Skip to content

Czym jest LimitRange w Kubernetes?

Jest to mechanizm którego zadaniem jest ograniczanie maksymalnej liczby zużywanych zasobów przez każdy z nowo tworzonych kontenerów na Podach.

Określane jest to w ramach namespace, każdy nowo tworzony kontener bierze to jako defaultowe ustawienia. Można to ustawiać dla CPU oraz dla pamięci RAM.

Określa on jaką użytkownik może ustawiać limits i requests dla kontenerów, dla danego zasobu (RAM lub CPU).

LimitRange dla CPU

apiVersion: v1
kind: LimitRange
metadata:
    name: <limit_range_name>
spec:
    limits:
        - default:
              cpu: <limit_default_cpu>
          defaultRequest:
              cpu: <request_default_cpu>
          max:
              cpu: <max_cpu_limit>
          min:
              cpu: <min_cpu_request>
          type: Container

default.cpu - określa ile domyślnie ustawiany jest limit dla nowo tworzonego kontenera defaultRequest.cpu - określa jaki jest defaultowy request CPU dla nowo tworzonego kontenera max.cpu - określa ile maksymalnie może użytkownik/admin przypisać CPU do nowo tworzonego kontenera (chodzi o limit - tą górną granicę) min.cpu - określa ile minimalnie może admin przypisac CPU do nowo tworzonego kontenera (ile minimalny request może być dla kontenera)

LimitRange dla RAM

apiVersion: v1
kind: LimitRange
metadata:
    name: <limit_range_name>
spec:
    limits:
        - default:
              memory: <limit_default_cpu>
          defaultRequest:
              memory: <request_default_cpu>
          max:
              memory: <max_cpu_limit>
          min:
              memory: <min_cpu_request>
          type: Container

Tabelka podsumowująca

Pole Co oznacza
min.cpu / min.memory minimalny dopuszczalny request
max.cpu / max.memory maksymalny dopuszczalny limit
defaultRequest.cpu / defaultRequest.memory request nadawany automatycznie, gdy nie podano
default.cpu / default.memory limit nadawany automatycznie, gdy nie podano