Aide-mémoire CKAD

exemple YAML requests limits k8s

requests : ce que le scheduler réserve. limits : le plafond runtime. Les deux sur le conteneur.

Une voie réservée ; un appareil coincé contre la barrière de hauteur. Une voie réservée ; un appareil coincé contre la barrière de hauteur.
Poser sur un Deployment
kubectl set resources deploy web --requests=cpu=100m,memory=128Mi --limits=cpu=200m,memory=256Mi
YAML
apiVersion: v1
kind: Pod
metadata:
  name: web
spec:
  containers:
    - name: web
      image: nginx:1.27
      resources:
        requests:
          cpu: "100m"
          memory: 128Mi
        limits:
          cpu: "200m"
          memory: 256Mi
Inspecter
kubectl describe po web | grep -A6 Limits
kubectl top po web

Champs

requests
Ce que le scheduler garantit. Le Pod reste Pending si aucun nœud n’a assez de libre.
limits
Plafond. Mémoire dépassée → OOMKilled. CPU dépassé → throttle, pas de kill.
cpu
« 100m » = 0,1 cœur. À mettre entre quotes. 1 = un cœur entier.
memory
128Mi, pas 128m. m = millicores. Mi = mébioctets.
kubectl set resources
Patche un Deployment en place. Lance un rollout.

Pièges

  • requests = ordonnancement. limits = plafond. Mémoire au-delà → OOMKilled. CPU au-delà → throttle.
  • 128Mi = mémoire. 128m = 0,128 CPU. Les confondre est un piège d’examen fréquent.
  • request == limit sur chaque conteneur → QoS Guaranteed. Le HPA CPU vise la request, pas la limit.

Doc officielle Resource Management

S’entraîner sur un cluster réel →