Kubernetes – Quality of Service – czyli definiowanie wymagań

W nomenklaturze Kubernetes Quality of Service (QoS) mówi o definiowaniu wymagań z poziomu poda przykładowo ile potrzebuje RAMu lub zasobów procesora. Przy tym Kubernetes wyróżnia trzy klasy Quality of Service: Guaranteed, Burstable, BestEffort.

Definiowanie wymagać (Quality of Service)

Quality of Service (czyli wymagania) definiowane są w sekcji resources i dotyczą tego czego oczekujemy oraz limitu:

apiVersion: v1
kind: Pod
metadata:
  name: your-pod-name
spec:
  containers:
  - name: your-container-name
    image: your-docker-image-name
    resources:
      limits:
        memory: "250Mi"
        cpu: "600m"
      requests:
        memory: "100Mi"
        cpu: "200m"

memory – odpowiada za pamięć RAM
cpu – odpowiada za przydział procesora

Trzy klasy

Guaranteed

Jeśli limity (sekcja limit) i wymagania (sekcja requests) posiadają te same wartości, to mówimy, że klasa Quality of Service to Guaranteed.

Burstable

Jeśli limity (sekcja limit) i wymagania (sekcja requests) posiadają różne wartości, to mówimy, że klasa Quality of Service to Burstable.

BestEffort

Jeśli nie ma żadnych limitów (sekcja limit) i wymagań (sekcja requests), to mówimy, że klasa Quality of Service to BestEffort.

Warto zajrzeć

1. https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/
2. https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core

Pozostaw komentarz

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