
Wie finde ich heraus, wie viele Mindest- und Höchstressourcen für die Bereitstellung jeder Anwendung zugewiesen werden müssen? Ich richte einen Cluster ein, habe noch keine Ressourcen eingerichtet und lasse ihn frei laufen.
Ich schätze, ich könnte verwenden, top command
um die Auslastung während der Spitzenzeit zu ermitteln und daran zu arbeiten, aber oben steht immer noch etwa 6 % oder 10 %, aber dann bin ich mir nicht sicher, wie ich das berechnen soll, um etwas wie 0.5 cpu
oder zu erhalten 100 MB
. Gibt es eine Methode/Formel, um das Maximum und Minimum basierend auf top command
der Nutzung zu bestimmen?
Ich betreibe zwei t3.medium-Knoten und habe die folgenden Pods httpd and tomcat in namespace1
, mysql in namepsace2
, jenkins and gitlab in namespace3
. Gibt es eine Anleitung zu den mindestens benötigten Ressourcen? Oder muss ich das anhand von top oder einer anderen Methode berechnen?
Antwort1
Die dem Pod zuzuweisenden Ressourcen hängen von Ihrer Anwendungsnutzung ab. Bei der Installation jenkins
mit Helm wurde beispielsweise Folgendes angegeben:Ressourcenanforderungen und -limits:
resources:
requests:
cpu: "50m"
memory: "256Mi"
limits:
cpu: "2000m"
memory: "4096Mi"
Um jedoch eine Pod-Beendigung aufgrund unzureichender Ressourcen zu vermeiden, können Sie Folgendes verwenden:Horizontal Pod Autoscaler
mit Ressourcenmetriken zum Hoch- oder Herunterskalieren von Pods basierend aufRessourcenverbrauch(oder irgend ein andererbenutzerdefinierte Metriken, wie Anfragen usw.). HPA erfordertmetrics-server
in Ihrem Cluster ausgeführt werden.
Es kann einfach erstellt werden mitkubectl autoscale
, Zum Beispiel:
kubectl autoscale deployment <deployment-name> --cpu-percent=50 --min=1 --max=10
Dabei --min
handelt es sich um die Mindestanzahl auszuführender Replikate und --max
um die maximale Anzahl an Replikaten der Pods, die im Falle einer Laststeigerung erstellt werden.