Skip to content

Czym są Resource Limits w Kubernetes?

Jest to mechanizm do określania jakie maksymalne ilości zasobów może kontener w Podzie zużywać, jakich nie może przekroczyć.

Warning

Jeżeli kontener przekroczy limity ustalone w Resource Limits będzie throttlowany w przypadku CPU, a w przypadku RAM zostanie ubity - pojawi się OOMKiller!

Definicja Pod z Resource Limits - górną granicą zasobów

apiVersion: v1
kind: Pod
metadata: 
    name: <nazwa_poda>
    labels:
        <label_key>: <label_value>
spec:
    containers:
        - name: <container_name>
          image: <container_image>
          ports: (optional)
            - containerPort: <container_port>
          resources:
              limits:
                  memory: <memory_value_in_Gi>
                  cpu: <cpu_amount>     

Wartości CPU

Parametr cpu określa jaki czas procesora lub ile procesorów (wątków) będzie dostępne dla konkretnego Poda.

Wartości integer

Najmniejsza wartość to 1. Wartość w integerze oznacza ile wątków lub vCPU procesora będzie pod używał. cpu: 1 - będzie to 1 vCPU na VMkach, lub 1 Thread na serwerze

Wartości w m (milisekundy)

Najmniejsza wartość w milisekundach procesora to 1m.

cpu: 0.1 = cpu 100m

inne wartości: - 1m = 0.001 CPU - 1000m = 1 CPU

Wartość pamięci RAM

Pamięć w żądaniach zasobów (Resource Request) wyrażamy w Mi (Mebibyte = 1048576bajtów), w Gi (Gibibyte) lub Ki (Kibibyte).