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
