3.5. Placer des pods sur des nœuds sur-engagés


Dans l'état overcommited, la somme des demandes et des limites des ressources de calcul du conteneur dépasse les ressources disponibles sur le système. Le surengagement peut être souhaitable dans les environnements de développement où un compromis entre les performances garanties et la capacité est acceptable.

Les demandes et les limites permettent aux administrateurs d'autoriser et de gérer le surengagement des ressources sur un nœud. L'ordonnanceur utilise les demandes pour planifier votre conteneur et fournir une garantie de service minimum. Les limites restreignent la quantité de ressources de calcul qui peuvent être consommées sur votre nœud.

3.5.1. Comprendre le surengagement

Les demandes et les limites permettent aux administrateurs d'autoriser et de gérer le surengagement des ressources sur un nœud. L'ordonnanceur utilise les demandes pour planifier votre conteneur et fournir une garantie de service minimum. Les limites restreignent la quantité de ressources de calcul qui peuvent être consommées sur votre nœud.

Les administrateurs d'OpenShift Container Platform peuvent contrôler le niveau de surengagement et gérer la densité des conteneurs sur les nœuds en configurant les maîtres pour remplacer le rapport entre la demande et la limite définie sur les conteneurs de développement. En conjonction avec un objet LimitRange par projet spécifiant les limites et les valeurs par défaut, cela ajuste la limite et la demande du conteneur pour atteindre le niveau souhaité de surengagement.

Note

Ces dérogations n'ont aucun effet si aucune limite n'a été fixée pour les conteneurs. Créez un objet LimitRange avec des limites par défaut, par projet individuel ou dans le modèle de projet, pour vous assurer que les dérogations s'appliquent.

Après ces dérogations, les limites et les demandes des conteneurs doivent toujours être validées par tout objet LimitRange dans le projet. Il est possible, par exemple, que les développeurs spécifient une limite proche de la limite minimale, et que la demande soit ensuite remplacée en dessous de la limite minimale, ce qui entraînerait l'interdiction du pod. Cette expérience malheureuse devrait être résolue dans le cadre de travaux futurs, mais pour l'instant, il convient de configurer cette capacité et les objets LimitRange avec prudence.

3.5.2. Comprendre le surengagement des nœuds

Dans un environnement surchargé, il est important de configurer correctement votre nœud afin d'obtenir le meilleur comportement possible du système.

Lorsque le nœud démarre, il s'assure que les drapeaux ajustables du noyau pour la gestion de la mémoire sont correctement définis. Le noyau ne devrait jamais échouer dans l'allocation de la mémoire à moins qu'il ne soit à court de mémoire physique.

Pour garantir ce comportement, OpenShift Container Platform configure le noyau pour qu'il surengage toujours de la mémoire en définissant le paramètre vm.overcommit_memory sur 1, ce qui annule le paramètre par défaut du système d'exploitation.

OpenShift Container Platform configure également le noyau pour qu'il ne panique pas lorsqu'il manque de mémoire en définissant le paramètre vm.panic_on_oom sur 0. Un paramètre de 0 indique au noyau d'appeler oom_killer dans une condition de manque de mémoire (OOM), ce qui tue les processus en fonction de leur priorité

Vous pouvez afficher le paramètre actuel en exécutant les commandes suivantes sur vos nœuds :

$ sysctl -a |grep commit

Exemple de sortie

vm.overcommit_memory = 1

$ sysctl -a |grep panic

Exemple de sortie

vm.panic_on_oom = 0

Note

Les drapeaux ci-dessus devraient déjà être activés sur les nœuds, et aucune autre action n'est nécessaire.

Vous pouvez également effectuer les configurations suivantes pour chaque nœud :

  • Désactiver ou appliquer les limites de l'unité centrale à l'aide des quotas CFS de l'unité centrale
  • Réserver des ressources pour les processus du système
  • Réserve de mémoire pour les différents niveaux de qualité de service
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.