Existe-t-il une demande de mémoire par défaut et / ou des limites pour les pods \ conteneurs dans k8s \ openshift?

Jan 24 2021

Bonjour, chers collègues DevOps,

J'essaie de comprendre si c'est une demande de base et / ou une limite par pod \ conteneur dans k8s ou OpenShift comme ils le sont aujourd'hui ou si vous êtes au courant d'un changement dans le futur à ce sujet.

J'ai vu cette réponse: quelle est la mémoire par défaut allouée pour un pod indiquant qu'il n'y en a pas, au moins pour l'implémentation de k8 par Google et j'aimerais en être sûr également pour l'état actuel des k8 et OpenShift dans les déploiements sur site.

actuellement en cours d'exécution du cluster enterprise openshift 3.11.16 et bientôt transféré vers 4.6.4, donc ma question concerne également l'implémentation par RedHat de la construction au-dessus des k8 par défaut (Openshift).

Existe-t-il une demande de base ou des valeurs limites pour un conteneur \ pod?

EDIT: Existe-t-il également un moyen pour k8s ou openshift de prédire la demande de mémoire du conteneur par le langage de développement d'application ou les variables d'environnement définies pour le déploiement (comme à partir de la commande java container RUN ou env: JVM_OPTS -Xms1G -Xmx1G)?

Réponses

2 VasiliAngapov Jan 24 2021 at 01:15

Par défaut, il n'y a pas de demandes de ressources ni de limites, ce qui signifie que chaque pod est créé à l'aide de BestEffort QoS . Si vous souhaitez configurer des valeurs par défaut pour les demandes et les limites, vous devez utiliser LimitRange .

Les pods BestEffort, par définition, sont «pour qu'un pod reçoive une classe QoS de BestEffort, les conteneurs du pod ne doivent pas avoir de limites ou de requêtes de mémoire ou de processeur». Les pods BestEffort ont la priorité la plus basse pour le planificateur Kubernetes et peuvent être expulsés en cas de conflit de ressources

Tout ce qui précède est vrai pour toutes les distributions Kubernetes, y compris OpenShift.

1 StavBernaz Feb 04 2021 at 05:31

Il n'y a pas de limite ou de demande par défaut. Afin de configurer les ressources par défaut, vous devez créer une ressource LimitRange comme décrit ici:https://docs.openshift.com/container-platform/3.11/dev_guide/compute_resources.html#dev-viewing-limit-ranges

Si vous souhaitez que chaque nouveau projet soit créé avec certaines limites de ressources, vous pouvez modifier le modèle de projet par défaut comme décrit ici: https://docs.openshift.com/container-platform/3.11/admin_guide/managing_projects.html#modifying-the-template-for-new-projects

Cela ne change pas non plus dans la version 4.6, seulement l'implémentation de la façon de modifier le LimitRange ou le modèle de projet par défaut. (La méthodologie est exactement la même)

Quant à votre question de prédire les ressources des applications, il y a quelques acteurs autour de ce problème. Je n'ai entendu parler que de turbonomic qui peut même changer automatiquement vos ressources de déploiement en fonction de l'utilisation et peut-être aussi de certaines métriques personnalisées.