Kubernetes – wyznaczanie potrzebnych zasobów pamięci i procesora [resources requests/limits]

Przy definiowaniu poda możliwe jest określenie naszych oczekiwań względem pamięci (ile potrzebujemy pamięci) oraz procesora (ile potrzebujemy rdzeni procesora).

Definiowanie minimum

Aby zdefiniować wymagane minimum należy zdefiniować w sekcji resources sekcję requests:

apiVersion: v1
kind: Pod
metadata:
  name: some-name
spec:
  containers:
  - name: app
    image: images.my-company.example/app
    resources:
      requests:
        memory: "1Gi"
        cpu: "500m"

memory – odpowiada za minimum pamięci jaka jest potrzebna. W tym wypadku jest to jeden Gibibajt.

cpu – odpowiada za minimalną ilość rdzeni procesora. W tym wypadku 500m oznacza pół jednego rdzenia (1000m to jeden rdzeń).

Zażądaj odpowiednią ilość

Niezwykle ważne jest aby zażądać odpowiednią ilość zasobów. Jeśli tego nie zrobimy, może tak się wydarzyć, że w ramach danego Noda nie dostaniemy więcej zasobów bo będą zużyte przez inne Pody.

Definiowanie limitów

Czasami jest taka potrzeba, że chcemy ograniczyć maksymalne zużycie przez danego Poda. Przykładowo jeśli algorytmy są zachłanne – zużyją tyle pamięci ile będzie możliwe. Albo gdy wiemy, że przekroczenie pewnego limitu z pewnych powodów jest błędne. Aby zdefiniować limity, wykorzystujemy sekcję limits w sekcji resources:

apiVersion: v1
kind: Pod
metadata:
  name: some-name
spec:
  containers:
  - name: app
    image: images.my-company.example/app
    resources:
      requests:
        memory: "1Gi"
        cpu: "500m"
      limits:
        memory: "2Gi"
        cpu: "1000m"

memory – odpowiada za maksimum pamięci jaka będzie potrzebna. W tym wypadku są to dwa Gibibajty.

cpu – odpowiada za maksymalną ilość rdzeni procesora. W tym wypadku 1000m czyli jeden pełny rdzeń procesora.

Nieobowiązkowe

Zarówno definiowanie minimum jak i limitów jest opcjonalne.

Warto zajrzeć

1. https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *