Kubernetes · 4 min read · Dec 09, 2025
Ressourcengrenzen in Kubernetes

Wenn der Knoten über genügend Ressourcen verfügt, kann ein Container mehr Ressourcen verwenden. Wir können angeben, wie viel von jeder Ressource ein Container benötigt. Die gängigen Ressourcen, die angegeben werden, sind CPU und Arbeitsspeicher. Wenn wir die Ressourcennutzung für Container in einem Pod angeben, entscheidet der Scheduler, auf welchem Knoten der Pod platziert wird. Wenn wir eine Ressourcengrenze für einen Container festlegen, kümmert sich der Kubelet um die Grenzen, sodass der laufende Container nicht mehr als das von uns festgelegte Limit verwenden darf.
Zum Beispiel, wenn wir eine Speicheranforderung von 100 MiB für einen Container festlegen, kann der Container versuchen, mehr RAM zu verwenden. Aber wenn wir eine Speichergrenze von 4GiB für diesen Container festlegen, verhindert die Laufzeit, dass der Container mehr als das konfigurierte Ressourcenlimit verwendet.
CPU und Arbeitsspeicher werden als Rechenressourcen bezeichnet.
Jeder Container eines Pods kann eine oder mehrere der folgenden Optionen angeben:
- Grenzen für CPU
- Grenzen für Arbeitsspeicher
- Grenzen für Hugepages-
- Anforderungen für CPU
- Anforderungen für Arbeitsspeicher
- Anforderungen für Hugepages-
Um mehr über Ressourcen in Kubernetes zu erfahren, klicken Sie hier, um die offizielle Dokumentation von Kubernetes zu besuchen.
In diesem Artikel werden wir ein Beispiel für eine Ressourcengrenze und -anforderung für CPU und Arbeitsspeicher sehen. Wir werden auch den Metric Server verwenden. Der Metrics Server ist ein Aggregator von Ressourcennutzungsdaten im Cluster und wird standardmäßig nicht im Cluster bereitgestellt. Wir werden diesen Metric Server verwenden, um den Ressourcenverbrauch durch Pods zu sehen.
Voraussetzungen
- Kubernetes-Cluster mit mindestens 1 Worker-Knoten.
Wenn Sie lernen möchten, wie man ein Kubernetes-Cluster erstellt, klicken Sie hier. Dieser Leitfaden hilft Ihnen, ein Kubernetes-Cluster mit 1 Master und 2 Knoten auf AWS Ubuntu 18.04 EC2-Instanzen zu erstellen.
Was werden wir tun?
- Ressourcengrenzen
Ressourcengrenzen
Bevor wir fortfahren und Pods mit angegebenen Ressourcenanforderungen erstellen, lassen Sie uns den Metric Server installieren.
Klonen Sie das Metric Server Github-Repository mit dem folgenden Befehl und installieren Sie es.
git clone https://github.com/kodekloudhub/kubernetes-metrics-server.gitcd kubernetes-metrics-server/Erstellen Sie den Metric Server mit den Objektdateien.
kubectl create -f .
Warten Sie eine Weile, bis der Metric Server initiiert ist. Nach einiger Zeit können Sie den folgenden Befehl ausführen, um die Clusterknoten zu überwachen.
kubectl top nodeErstellen Sie nun eine Pod-Definitionsdatei mit dem folgenden Inhalt, die die Speicheranforderung und -grenze enthält.
vim my-pod-with-memory.ymlapiVersion: v1
kind: Pod
metadata:
name: my-pod-memory-demo
spec:
containers:
- name: my-container-memory-demo
image: polinux/stress
resources:
limits:
memory: "50Mi"
requests:
memory: "20Mi"
command: ["stress"]
args: ["--vm", "1", "--vm-bytes", "30M", "--vm-hang", "1"]
Sie finden die Eigenschaft “resources”, in der wir das Speicherlimit auf 50Mi und die Speicheranforderung auf 20Mi festgelegt haben.
Überprüfen Sie die vorhandenen Pods im Standard-Namespace des Clusters.
kubectl get pods #Holen Sie sich Pods aus dem Standard-NamespaceErstellen Sie einen Pod mit der oben erstellten Pod-Definition.
kubectl create -f my-pod-with-memory.yml #Erstellen Sie einen Podkubectl get pods
Jetzt, wenn Sie die Details des Pods abrufen, können Sie sehen, dass der Pod 20Mi Arbeitsspeicher anfordert und ein Limit von 50Mi Arbeitsspeicher hat.
kubectl get podskubectl describe pod my-pod-memory-demo #Beschreiben Sie den Pod
Die Pod-Nutzung kann mit dem folgenden Befehl überprüft werden.
kubectl top pods #Überprüfen Sie den Ressourcenverbrauch des Pods
Erstellen Sie nun eine Pod-Definition mit CPU-Anforderung und -Grenze.
vim my-pod-with-cpu.ymlapiVersion: v1
kind: Pod
metadata:
name: my-pod-cpu-demo
spec:
containers:
- name: my-container-cpu-demo image: vish/stress
resources:
limits: cpu: "1"
requests:
cpu: "0.5"
args:
- -cpus
- "2"In der obigen Datei sehen Sie, dass die Definition eine “resource”-Eigenschaft mit einer CPU-Anforderung von 0.5 und einem Limit von 1 hat. Beachten Sie auch, dass wir 2 CPUs als unsere Anforderung übergeben, was mehr als das Limit ist.
Lassen Sie uns nun einen Pod mit CPU-Anforderung und -Grenze mit dem folgenden Befehl erstellen.
kubectl apply -f my-pod-with-cpu.yml #Erstellen Sie einen Podkubectl get pods
Holen Sie sich die Details des Pods, den wir erstellt haben.
kubectl get podskubectl describe pod my-pod-cpu-demo
Sie können sehen, dass der Pod 0.5 oder 500m CPU mit einem Limit von 1 CPU angefordert hat.
Um die CPU-Nutzung zu überprüfen, verwenden Sie den folgenden Befehl.
kubectl top pod #Überprüfen Sie den Ressourcenverbrauch des Pods
Im obigen Screenshot sehen Sie, dass der Pod “my-pod-cpu-demo” trotz der Angabe von 2 CPUs in der Pod-Definition als Argument nicht mehr als das Limit, d.h. 1 CPU, verbrauchen kann. Hier konnte der Pod “my-pod-cpu-demo” 999m CPU verbrauchen, was 1 CPU entspricht, und konnte seinen Verbrauch nicht erhöhen.
Fazit
In diesem Artikel haben wir die Schritte zur Aktivierung der Überwachung im Cluster mit dem Metric Server gesehen. Wir haben gesehen, wie ein Pod CPU und Arbeitsspeicher anfordern und Ressourcen nicht über das angegebene Limit hinaus verbrauchen kann.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.
