Gibt es eine Standardspeicheranforderung und / oder Grenzwerte für Pods \ Container in k8s \ openshift?

Jan 24 2021

Hallo DevOps-Kollegen,

Ich versuche zu verstehen, ob es sich um eine Basisanforderung und / oder ein Limit pro Pod \ Container in k8s oder Openshift handelt, wie sie heute sind, oder ob Sie diesbezüglich eine Änderung in der Zukunft kennen.

Ich habe diese Antwort gesehen: Was ist der Standardspeicher, der für einen Pod zugewiesen wird, der angibt, dass es keinen gibt, zumindest für die Implementierung von k8s durch Google, und ich möchte dies auch für den aktuellen Status von k8s und sicher wissen Open-Shift bei On-Prem-Bereitstellungen.

Derzeit wird der Enterprise OpenShift 3.11.16-Cluster ausgeführt und bald auf 4.6.4 übertragen. Meine Frage bezieht sich daher auch auf die Implementierung von RedHat, die auf Standard-K8s (Openshift) aufbaut.

Gibt es Basisanforderungs- oder Grenzwerte für einen Container \ pod?

BEARBEITEN: Gibt es auch eine Möglichkeit, wie k8s oder openshift die Anforderung des Containerspeichers anhand der Anwendungsentwicklungssprache oder der für die Bereitstellung festgelegten Umgebungsvariablen vorhersagen würde (z. B. aus dem Java-Container-RUN-Befehl oder env: JVM_OPTS -Xms1G -Xmx1G)?

Antworten

2 VasiliAngapov Jan 24 2021 at 01:15

Standardmäßig gibt es keine Ressourcenanforderungen oder -beschränkungen . Dies bedeutet, dass jeder Pod mit BestEffort QoS erstellt wird . Wenn Sie Standardwerte für Anforderungen und Grenzwerte konfigurieren möchten, sollten Sie LimitRange verwenden .

BestEffort-Pods sind per Definition "Damit ein Pod eine QoS-Klasse von BestEffort erhält, dürfen die Container im Pod keine Speicher- oder CPU-Beschränkungen oder -Anforderungen haben." BestEffort-Pods haben die niedrigste Priorität für den Kubernetes-Scheduler und können bei Ressourcenkonflikten entfernt werden

Alles oben Gesagte gilt für alle Kubernetes-Distributionen einschließlich OpenShift.

1 StavBernaz Feb 04 2021 at 05:31

Es gibt kein Standardlimit oder keine Standardanforderung. Um Standardressourcen zu konfigurieren, sollten Sie eine LimitRange-Ressource wie hier beschrieben erstellen:https://docs.openshift.com/container-platform/3.11/dev_guide/compute_resources.html#dev-viewing-limit-ranges

Wenn Sie möchten, dass jedes neue Projekt mit bestimmten Ressourcenbeschränkungen erstellt wird, können Sie die Standardprojektvorlage wie hier beschrieben ändern: https://docs.openshift.com/container-platform/3.11/admin_guide/managing_projects.html#modifying-the-template-for-new-projects

Dies ändert sich auch in 4.6 nicht, sondern nur in der Implementierung, wie die LimitRange- oder Standardprojektvorlage geändert wird. (Die Methodik ist genau die gleiche)

In Bezug auf Ihre Frage zur Vorhersage der Ressourcen von Anwendungen gibt es einige Akteure, die sich mit diesem Problem befassen. Ich habe nur von Turbonomic gehört, das sogar Ihre Bereitstellungsressourcen automatisch durch Nutzung und möglicherweise auch einige benutzerdefinierte Metriken ändern kann.