0Pricing
Kubernetes Basics · Leçon

Demandes et limites de ressources

Définissez les demandes et les limites de CPU et de mémoire des Pods afin d’assurer une allocation efficace des ressources et d’éviter leur épuisement.

Demandes et limites de ressources est une leçon Kubernetes Basics gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kubernetes Basics, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kubernetes Basics comprend 4 leçons au total.

Besoins en ressources dans Kubernetes

Comme toute application, vos Pods ont besoin de ressources pour fonctionner. Kubernetes vous aide à gérer efficacement ces ressources grâce aux demandes de ressources et aux limites de ressources.

Ces paramètres indiquent à Kubernetes la quantité de CPU et de mémoire dont vos Pods ont besoin, ainsi que la quantité maximale qu’ils sont autorisés à utiliser, afin d’assurer une répartition équitable des ressources.

Demandes de CPU : garantir le CPU

Une demande de CPU indique à Kubernetes la quantité minimale de CPU dont votre Pod a besoin pour fonctionner correctement. C’est une garantie !

  • Kubernetes utilise les demandes pour planifier les Pods sur des nœuds disposant de suffisamment de ressources disponibles.
  • Si un nœud ne dispose pas de suffisamment de CPU pour répondre à la demande, le Pod n’y sera pas planifié.
  • Cela contribue à éviter la pénurie de ressources pour vos applications critiques.

Unités de CPU et exemple de demande

Le CPU se mesure en « cœurs » ou en « millicœurs » (m). 1000m équivaut à 1 cœur CPU. Ainsi, 500m représente un demi-cœur.

Voici comment demander 0,5 cœur CPU dans la définition d’un Pod :

apiVersion: v1
kind: Pod
metadata:
  name: cpu-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        cpu: "500m"

Limites de CPU : empêcher l’utilisation excessive

Une limite de CPU définit la quantité maximale de CPU qu’un Pod peut utiliser. Il s’agit d’un plafond.

  • Si un Pod tente d’utiliser plus de CPU que sa limite, Kubernetes le brid​​e.
  • Cela signifie que l’utilisation du CPU par le Pod sera restreinte, afin d’éviter qu’il ne monopolise les ressources des autres Pods du même nœud.

La limite de CPU en pratique

Voici un exemple de définition d’une limite de CPU. Si ce Pod tente d’utiliser plus d’un cœur CPU, il sera bridé, ce qui limitera ses performances.

apiVersion: v1
kind: Pod
metadata:
  name: cpu-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        cpu: "1"

Demandes de mémoire : garantir la RAM

Comme pour le CPU, une demande de mémoire indique la quantité minimale de RAM dont votre Pod a besoin pour fonctionner.

  • Kubernetes utilise cette information pour trouver un nœud disposant de suffisamment de mémoire libre pour votre Pod.
  • Si un nœud manque de mémoire, les Pods sans demandes sont souvent les premiers à être arrêtés (expulsés) pour libérer de l’espace.

Unités de mémoire et exemple de demande

La mémoire se mesure en octets. Les unités courantes sont Mi (mébioctets) et Gi (gibioctets).

100Mi correspondent à 100 mébioctets. Voici comment demander 256 Mio de mémoire :

apiVersion: v1
kind: Pod
metadata:
  name: mem-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        memory: "256Mi"

Limites de mémoire : éviter les erreurs OOM

Une limite de mémoire définit la quantité maximale de mémoire qu'un Pod peut consommer.

  • Si un Pod dépasse sa limite de mémoire, il est immédiatement arrêté par le système d'exploitation avec une erreur « Out Of Memory » (OOM). Cela apparaît souvent sous la forme « OOMKilled ».
  • Cela empêche un seul Pod défaillant de consommer toute la mémoire du nœud et de provoquer son plantage.

La limite de mémoire en action

Ce Pod dispose d'une limite de mémoire de 512 Mio. S'il tente d'en utiliser davantage, il sera arrêté (OOMKilled) afin de protéger les autres charges de travail et le nœud.

apiVersion: v1
kind: Pod
metadata:
  name: mem-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        memory: "512Mi"

Bonnes pratiques : demandes et limites

Il est recommandé de définir à la fois des demandes et des limites pour tous vos Pods. Cela apporte stabilité et prévisibilité à votre cluster.

  • Les demandes garantissent à vos Pods un minimum de ressources pour la planification.
  • Les limites empêchent les autres Pods et le nœud lui-même de manquer de ressources.

Voici un exemple complet :

apiVersion: v1
kind: Pod
metadata:
  name: full-resource-pod
spec:
  containers:
  - name: my-app
    image: my-registry/my-app:1.0
    resources:
      requests:
        cpu: "200m"
        memory: "128Mi"
      limits:
        cpu: "500m"
        memory: "256Mi"

Vérification des ressources

Vous avez défini un Pod avec une demande de CPU de 200m et une limite de CPU de 1 (soit 1000m).

Que se passe-t-il si ce Pod tente d'utiliser 1.5 cœur CPU ?

Récapitulatif : gestion des ressources

Dans cette leçon, nous avons étudié les demandes de ressources et les limites de ressources dans Kubernetes.

  • Les demandes (CPU et mémoire) garantissent un minimum de ressources pour la planification des Pods.
  • Les limites (CPU et mémoire) plafonnent l'utilisation maximale afin d'éviter la concurrence pour les ressources.
  • Le dépassement des limites de CPU entraîne une limitation ; le dépassement des limites de mémoire entraîne un arrêt (OOMKilled).
  • Définissez toujours les demandes et les limites afin d'obtenir des performances applicatives stables et prévisibles !

Questions Fréquemment Posées

La leçon « Demandes et limites de ressources » est-elle gratuite ?

Oui — le texte complet de « Demandes et limites de ressources » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kubernetes Basics, passe à CoddyKit PRO. Le cours Kubernetes Basics comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Demandes et limites de ressources » ?

Définissez les demandes et les limites de CPU et de mémoire des Pods afin d’assurer une allocation efficace des ressources et d’éviter leur épuisement. Tu pratiques Kubernetes Basics avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Kubernetes Basics ?

Aucune expérience préalable n'est requise. Kubernetes Basics sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Demandes et limites de ressources » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Kubernetes Basics ?

Oui. Chaque leçon Kubernetes Basics inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Demandes et limites de ressources
  2. Sélecteurs de nœuds et affinité
  3. Taints et tolérances
  4. Priorité et préemption des Pods
← Retour à Kubernetes Basics