Website-Suche

Kontrolle der CPU- und RAM-Auslastung in Kubernetes


Kubernetes wird in der Regel verwendet, um containerisierte Anwendungen über viele Worker-Knoten hinweg zu skalieren. Da immer mehr Anwendungen in Ihrem Kubernetes-Cluster bereitgestellt werden, wird die Verwaltung der CPU- und Speicherauslastung zu einem entscheidenden Thema. In diesem Tutorial sehen wir uns an, wie Sie die CPU- und RAM-Auslastung in Kubernetes auf einem Linux-System verwalten, um Ressourcenlimits zu konfigurieren und sicherzustellen, dass Container nicht mehr verbrauchen, als ihnen zugewiesen ist.

In diesem Tutorial lernen Sie:

  • Konfigurieren des minimalen RAM und der CPU für einen Container
  • Konfigurieren der maximal zulässigen Auslastung von RAM und CPU für einen Container
  • Formatieren einer YAML-Datei für Ressourcenanforderungen und Grenzwerte

Verwenden von Ressourcenanforderungen und Grenzwerten

Die wichtigsten Mechanismen, die von Kubernetes zur Regulierung der CPU- und RAM-Auslastung verwendet werden, sind Ressourcenanfragen und -limits. Ressourcengrenzwerte definieren die maximale Menge an CPU und Arbeitsspeicher, die ein Container verwenden kann, während Ressourcenanforderungen die minimale CPU und den RAM definieren, die ein Container haben muss, um zu funktionieren.

Sie können die folgenden Zeilen (beginnend bei 'resources') in die YAML-Konfigurationsdatei eines Containers einfügen, um Ressourcenanforderungen und -grenzwerte anzugeben:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image
    resources:
      requests:
        cpu: 200m
        memory: 258Mi
      limits:
        cpu: 400m
        memory: 512Mi

Im obigen Beispiel fordert der Container 200 Milli CPUs und 256 MB RAM an, um zu funktionieren, und die Obergrenze des Containers ist auf 400 Milli CPUs und 512 MB RAM-Auslastung begrenzt.

Hinweis: 200 "Millicpus" entsprechen einer CPU-Auslastung von 20 %.

WARNING
Wenn die CPU- und RAM-Anforderungen für einen Container nicht erfüllt werden können, wird die Ausführung auf dem Knoten nicht geplant. Stellen Sie sicher, dass Ihre physische Hardware oder Cloud-Server die minimalen und maximalen Anforderungen Ihrer Anforderungen und Limits erfüllen können, bevor Sie die Konfigurationen bereitstellen.

Wenn Sie bereit sind, Ihre Konfiguration per Push in den Container zu pushen, führen Sie den Befehl kubectl apply aus:


kubectl apply -f /path/to/pod-config.yaml

Das ist alles, was dazu gehört. Kubernetes kann die Verteilung der Ressourcen auf die Container besser verwalten und sicherstellen, dass jeder die Ressourcen erhält, die er benötigt, um gut zu funktionieren, indem es Ressourcenanforderungen und -grenzen festlegt.

Verwandte Artikel: