Kubernetes hat sich als führende Orchestrierungsengine etabliert, die von vielen Organisationen genutzt wird, um Workloads effizient zu verwalten. Die richtige Planung der Pods ist entscheidend, um sicherzustellen, dass Anwendungs-Pods innerhalb des Kubernetes-Clusters reibungslos laufen. In diesem Artikel betrachten wir, wie das Objekt PriorityClass verwendet wird, um mission-critical oder hochpriorisierte Pods vor der Eviction zu schützen und sicherzustellen, dass sie verfügbar sind und den Datenverkehr bedienen.

Ressourcenmanagement in Kubernetes

Der Control Plane von Kubernetes besteht aus mehreren Komponenten, wobei der Scheduler (in der Regel der integrierte kube-scheduler) eine der wichtigsten ist. Er ist dafür verantwortlich, einen Knoten einem Pod zuzuweisen.

Wenn ein Pod erstellt wird, befindet er sich zunächst im “pending”-Zustand, bis der Scheduler den am besten geeigneten Knoten für den neuen Pod bestimmt. Im Hintergrund läuft der Scheduler in einer Endlosschleife und sucht nach Pods, die keinen nodeName gesetzt haben und bereit für die Planung sind. Für jeden Pod, der geplant werden muss, versucht der Scheduler zu entscheiden, welcher Knoten den Pod ausführen sollte.

Wenn der Scheduler keinen geeigneten Knoten finden kann, bleibt der Pod im Pending-Zustand, was nicht ideal ist.

Hinweis: Hierbei kommen verschiedene Kriterien zum Einsatz, wie nodeSelector, taints and tolerations, nodeAffinity, die Verfügbarkeit von Ressourcen (zum Beispiel CPU und Arbeitsspeicher) und viele weitere Faktoren, die den Standort des Pods bestimmen.

Das folgende Diagramm veranschaulicht den Anfragefluss:

Ein Diagramm, das die Planung von drei Pods zeigt, die ein Client direkt erstellt hat.

Typische Anwendungsfälle

Hier sind einige reale Szenarien, in denen Kontrolle über die Planung und Eviction von Pods erforderlich sein könnte:

  1. Angenommen, der Pod, den Du bereitstellen möchtest, ist kritisch und Du hast einige Ressourcenbeschränkungen. Ein Beispiel wäre das DaemonSet eines Infrastrukturkomponenten wie Grafana Loki. Die Loki-Pods müssen vor anderen Pods auf jedem Knoten laufen. In solchen Fällen könntest Du die Verfügbarkeit von Ressourcen sicherstellen, indem Du manuell nicht benötigte Pods identifizierst und löschst oder einen neuen Knoten zum Cluster hinzufügst. Beide Ansätze sind jedoch unpraktisch, da das manuelle Löschen mühsam wäre und das Hinzufügen eines neuen Knotens Zeit und Geld kosten könnte.

  2. Ein weiteres Anwendungsbeispiel könnte ein einzelner Cluster sein, der Pods für die folgenden Umgebungen mit entsprechenden Prioritäten hält:

    • Produktion (prod): höchste Priorität
    • Vorproduktion (preprod): mittlere Priorität
    • Entwicklung (dev): niedrigste Priorität

    Bei hoher Ressourcennutzung im Cluster kommt es zu Konkurrenz um CPU- und Arbeitsspeicherressourcen auf den Knoten. Während das Cluster-Level-Autoscaling möglicherweise mehr Knoten hinzufügt, dauert dies eine Weile. In der Zwischenzeit könnten einige Pods im Pending-Zustand verbleiben oder der Dienst könnte beeinträchtigt werden, während sie um Ressourcen konkurrieren. Sollte der kubelet einen Pod vom Knoten evakuieren, geschieht dies zufällig, da der kubelet keine speziellen Informationen darüber hat, welche Pods evakuiert und welche behalten werden sollten.

  3. Ein drittes Beispiel könnte ein Microservice sein, der von einer Warteschlangenanwendung oder einer Datenbank unterstützt wird und in einen Ressourcenengpass gerät, wodurch die Warteschlange oder die Datenbank evakuiert wird. In einem solchen Fall wären alle anderen Dienste nutzlos, bis die Datenbank wieder Datenverkehr bearbeiten kann.

Es gibt auch andere Szenarien, in denen Du die Reihenfolge der Planung oder Eviction von Pods steuern möchtest.

Mit der richtigen Anwendung von PriorityClass kannst Du sicherstellen, dass Deine wichtigsten Pods immer priorisiert behandelt werden. ayedo unterstützt Dich dabei, Kubernetes optimal zu nutzen und Deine kritischen Anwendungen zu schützen!


Quelle: Kubernetes Blog

ayedo Alien Kubernetes Hat

Hosten Sie Ihre Apps bei ayedo

Profitieren Sie von skalierbarem App Hosting in Kubernetes, hochverfügbarem Ingress Loadbalancing und erstklassigem Support durch unser Plattform Team. Mit der ayedo Cloud können Sie sich wieder auf das konzentrieren, was Sie am besten können: Software entwickeln.

Jetzt ausprobieren →

Ähnliche Inhalte

Alle Blogs →



ayedo Redaktion · 06.07.2025 · ⏳ 2 Minuten

Herausforderungen und Lösungen: So meistern Sie Geräteausfälle in Kubernetes-Pods

Kubernetes ist der De-facto-Standard für die Container-Orchestrierung, aber wenn es um den Umgang mit spezialisierter Hardware wie GPUs und anderen Beschleunigern geht, wird es kompliziert. In diesem …

Lesen →

Herausforderungen und Lösungen: So meistern Sie Geräteausfälle in Kubernetes-Pods
Katrin Peter · 03.07.2025 · ⏳ 2 Minuten

Produkt-Update bei Loopback:

Lesen →

Produkt-Update bei Loopback:
Katrin Peter · 03.07.2025 · ⏳ 3 Minuten

Kubernetes als Schlüsseltechnologie für die OZG-Umsetzung im Saarland

Lesen →

Kubernetes als Schlüsseltechnologie für die OZG-Umsetzung im Saarland
ayedo Redaktion · 28.06.2025 · ⏳ 3 Minuten

Kompatibilität von Container-Images: Ein Schlüssel zur Zuverlässigkeit in Cloud-Umgebungen

In Branchen, in denen Systeme äußerst zuverlässig laufen müssen und strenge Leistungsanforderungen bestehen, wie beispielsweise in der Telekommunikation, Hochleistungs- oder KI-Computing, benötigen …

Lesen →

Kompatibilität von Container-Images: Ein Schlüssel zur Zuverlässigkeit in Cloud-Umgebungen
Katrin Peter · 17.06.2025 · ⏳ 3 Minuten

Kubernetes kann Freiheit - wenn man es richtig macht.

Lesen →

Kubernetes kann Freiheit - wenn man es richtig macht.

Interessiert an weiteren Inhalten? Hier gehts zu allen Blogs →


Noch Fragen? Melden Sie sich!

Unsere DevOps-Experten antworten in der Regel innerhalb einer Stunde.

Zu Gen-Z für E-Mail? Einfach mal Discord versuchen. Unter +49 800 000 3706 können Sie unter Angabe Ihrer Kontaktdaten auch einen Rückruf vereinbaren. Bitte beachten Sie, dass es keine Möglichkeit gibt, uns telefonisch direkt zu erreichen. Bitte gar nicht erst versuchen. Sollten Sie dennoch Interesse an synchroner Verfügbarkeit via Telefon haben, empfehlen wir Ihnen unseren Priority Support.