0Pricing
DevOps Bootcamp · Lektion

Ressourcenanforderungen und -limits

Definieren Sie CPU- und Speicheranforderungen sowie -limits für Pods, um eine effiziente Ressourcenverteilung sicherzustellen und Ressourcenknappheit zu verhindern.

Ressourcenanforderungen und -limits ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Ressourcenbedarf in Kubernetes

Wie jede Anwendung benötigen auch Ihre Pods Ressourcen, um ausgeführt werden zu können. Kubernetes hilft dabei, diese Ressourcen mithilfe von Resource Requests und Resource Limits effizient zu verwalten.

Diese Einstellungen teilen Kubernetes mit, wie viel CPU und Arbeitsspeicher Ihre Pods benötigen und wie viel sie höchstens verwenden dürfen. Dadurch wird eine faire Verteilung der Ressourcen sichergestellt.

CPU-Requests: CPU garantieren

Ein CPU Request teilt Kubernetes mit, wie viel CPU Ihr Pod mindestens benötigt, um zuverlässig ausgeführt zu werden. Er stellt eine Garantie dar!

  • Kubernetes verwendet Requests, um Pods auf Knoten mit ausreichend verfügbaren Ressourcen einzuplanen.
  • Wenn ein Knoten nicht über genügend CPU für den Request verfügt, wird der Pod dort nicht eingeplant.
  • Dies hilft, eine Ressourcenknappheit bei Ihren wichtigen Anwendungen zu verhindern.

CPU-Einheiten und Beispiel für einen Request

CPU wird in „Cores“ oder „Millicores“ (m) gemessen. 1000m entsprechen 1 CPU-Core. 500m entsprechen also einem halben Core.

So fordern Sie in einer Pod-Definition 0,5 CPU-Cores an:

apiVersion: v1
kind: Pod
metadata:
  name: cpu-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        cpu: "500m"

CPU-Limits: Übermäßige Nutzung verhindern

Ein CPU Limit legt fest, wie viel CPU ein Pod höchstens verwenden darf. Es bildet eine Obergrenze.

  • Wenn ein Pod mehr CPU als sein Limit verwenden möchte, wird seine Nutzung von Kubernetes gedrosselt.
  • Das bedeutet, dass die CPU-Nutzung des Pods eingeschränkt wird. So wird verhindert, dass er anderen Pods auf demselben Knoten Ressourcen entzieht.

CPU-Limit in der Praxis

Hier sehen Sie ein Beispiel für das Festlegen eines CPU-Limits. Wenn dieser Pod versucht, mehr als 1 CPU-Core zu verwenden, wird er gedrosselt. Seine Leistung wird dadurch eingeschränkt.

apiVersion: v1
kind: Pod
metadata:
  name: cpu-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        cpu: "1"

Memory-Requests: Arbeitsspeicher garantieren

Ähnlich wie ein CPU Request gibt ein Memory Request die Mindestmenge an Arbeitsspeicher an, die Ihr Pod für den Betrieb benötigt.

  • Kubernetes verwendet diesen Wert, um einen Knoten mit genügend freiem Arbeitsspeicher für Ihren Pod zu finden.
  • Wenn einem Knoten der Arbeitsspeicher ausgeht, werden Pods ohne Requests häufig zuerst beendet (evicted), um Speicher freizugeben.

Speichereinheiten und Beispiel für einen Request

Speicher wird in Bytes gemessen. Übliche Einheiten sind Mi (Mebibytes) und Gi (Gibibytes).

100Mi entspricht 100 Mebibytes. So fordern Sie 256 MiB Speicher an:

apiVersion: v1
kind: Pod
metadata:
  name: mem-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        memory: "256Mi"

Speicherlimits: OOM vermeiden

Ein Memory Limit legt fest, wie viel Speicher ein Pod maximal verbrauchen darf.

  • Wenn ein Pod sein Memory Limit überschreitet, wird er vom Betriebssystem sofort mit einem „Out Of Memory“-Fehler (OOM) beendet. Dies wird häufig als „OOMKilled“ angezeigt.
  • So wird verhindert, dass ein einzelner außer Kontrolle geratener Pod den gesamten Speicher des Nodes verbraucht und den Node zum Absturz bringt.

Memory Limit in Aktion

Dieser Pod hat ein Memory Limit von 512 MiB. Wenn er versucht, mehr Speicher zu verwenden, wird er beendet (OOMKilled), um andere Workloads und den Node zu schützen.

apiVersion: v1
kind: Pod
metadata:
  name: mem-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        memory: "512Mi"

Best Practices: Requests und Limits

Es ist eine Best Practice, für alle Ihre Pods sowohl Requests als auch Limits zu definieren. Das sorgt für Stabilität und Vorhersagbarkeit in Ihrem Cluster.

  • Requests stellen sicher, dass Ihre Pods für die Planung die benötigten Mindestressourcen erhalten.
  • Limits verhindern, dass anderen Pods und dem Node selbst Ressourcen entzogen werden.

Hier ist ein vollständiges Beispiel:

apiVersion: v1
kind: Pod
metadata:
  name: full-resource-pod
spec:
  containers:
  - name: my-app
    image: my-registry/my-app:1.0
    resources:
      requests:
        cpu: "200m"
        memory: "128Mi"
      limits:
        cpu: "500m"
        memory: "256Mi"

Ressourcenprüfung

Sie haben einen Pod definiert, der einen CPU-Request von 200m und ein CPU-Limit von 1 (also 1000m) besitzt.

Was passiert, wenn dieser Pod versucht, 1.5 CPU-Kerne zu verwenden?

Zusammenfassung: Ressourcenverwaltung

In dieser Lektion haben wir Resource Requests und Resource Limits in Kubernetes kennengelernt.

  • Requests (CPU und Speicher) garantieren Mindestressourcen für die Planung von Pods.
  • Limits (CPU und Speicher) begrenzen die maximale Nutzung, um Ressourcenkonflikte zu verhindern.
  • Das Überschreiten von CPU-Limits führt zu einer Drosselung; das Überschreiten von Speicherlimits führt zur Beendigung (OOMKilled).
  • Definieren Sie immer sowohl Requests als auch Limits, um eine stabile und vorhersehbare Anwendungsleistung zu gewährleisten!

Häufig gestellte Fragen

Ist die Lektion „Ressourcenanforderungen und -limits“ kostenlos?

Ja — der vollständige Text von „Ressourcenanforderungen und -limits“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Ressourcenanforderungen und -limits“?

Definieren Sie CPU- und Speicheranforderungen sowie -limits für Pods, um eine effiziente Ressourcenverteilung sicherzustellen und Ressourcenknappheit zu verhindern. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um DevOps Bootcamp zu starten?

Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Ressourcenanforderungen und -limits“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?

Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Ressourcenanforderungen und -limits
  2. Node-Selektoren und Affinität
  3. Taints und Tolerations
  4. Pod-Priorität und Preemption
← Zurück zu DevOps Bootcamp