ResourceQuota
Les ResourceQuotas limitent la consommation totale de ressources dans un namespace.
apiVersion: v1
kind: ResourceQuota
metadata:
name: dev-quota
namespace: dev
spec:
hard:
requests.cpu: "10"
requests.memory: 20Gi
limits.cpu: "20"
limits.memory: 40Gi
pods: "50"
services: "10"
Verifier les quotas
kubectl get resourcequota -n dev
kubectl describe resourcequota dev-quota -n dev
LimitRange
Les LimitRanges definissent des limites par defaut et min/max pour les Pods et conteneurs.
apiVersion: v1
kind: LimitRange
metadata:
name: dev-limits
namespace: dev
spec:
limits:
- max:
cpu: "2"
memory: 4Gi
min:
cpu: 100m
memory: 128Mi
default:
cpu: 500m
memory: 512Mi
defaultRequest:
cpu: 200m
memory: 256Mi
type: Container
Requests vs Limits
- requests : Ressources garanties (scheduler)
- limits : Ressources maximales (OOM killer)
resources:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
Best practice : Definissez toujours requests et limits pour eviter qu'un Pod consomme toutes les ressources du nœud.