Sobes.tech
Middle

Was sind Limits und Requests in Kubernetes?

sobes.tech KI

Antwort von AI

Grenzen (limits) und Anforderungen (requests) in Kubernetes bestimmen den Ressourcenverbrauch (CPU und Speicher) für Container.

  • requests: Die minimale garantierte Menge an Ressourcen, die der Container zu verwenden versucht. Der Kubernetes-Planer berücksichtigt die Anforderungen bei der Verteilung der Pods auf die Knoten, um die Verfügbarkeit der deklarierten Ressourcen sicherzustellen.
  • limits: Die maximale Menge an Ressourcen, die der Container verwenden darf. Wenn der Container versucht, das Speicherlimit zu überschreiten, wird er beendet (OOMKilled). Das Überschreiten des CPU-Limits beschränkt seine Leistung, führt aber nicht zu seiner Beendigung.

Beispiel in der Pod-Spezifikation:

# Container-Spezifikation
containers:
  - name: my-app
    image: my-image
    resources:
      requests:
        memory: "64Mi" # Fordert 64 Megabyte Speicher
        cpu: "250m"   # Fordert 0,25 CPU-Kerne (250 Millikern)
      limits:
        memory: "128Mi" # Limit von 128 Megabyte Speicher
        cpu: "500m"   # Limit von 0,5 CPU-Kernen (500 Millikern)

Maßeinheiten:

  • CPU: In Millikernen (m). 1000m = 1 Kern.
  • Speicher: In Bytes (B, kB, MB, GB, Ti, Pi...), vorzugsweise mit Zweierpotenzen (Ki, Mi, Gi, Ti, Pi...).

Wichtigkeit:

  • Planung: Requests helfen Kubernetes, Pods effizient auf Knoten zu verteilen und Überlastung zu vermeiden.
  • Stabilität: Limits verhindern die Monopolisierung von Ressourcen durch einen einzelnen Pod und erhöhen die Stabilität des Clusters.
  • Kostenmanagement: Ermöglichen die Abschätzung und Kontrolle des Ressourcenverbrauchs, was die Cloud-Kosten beeinflusst.

Ohne die Festlegung von Limits und Requests können Container unbegrenzte Ressourcen erhalten, was bei hoher Belastung zu Instabilität der Knoten und des gesamten Clusters führen kann.