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 |