6 Repos
Management of taints and labels on cluster nodes to control pod placement and affinity.
Distinguishing note: Shortlist candidates focus on ML labels or P2P sync, not Kubernetes pod scheduling constraints via taints/labels.
Explore 6 awesome GitHub repositories matching devops & infrastructure · Node Scheduling Constraints. Refine with filters or upvote what's useful.
OpenEBS is a container-native storage platform that provides persistent volumes for stateful applications running on Kubernetes. It operates through a Kubernetes-native microservice architecture, where storage controllers are managed entirely with kubectl and standard Kubernetes APIs, and offers both local and replicated block storage options. The platform distinguishes itself through synchronous NVMe-TCP replication, which replicates block data across nodes to enable pod rescheduling after node failure without data loss. It also includes a snapshot and clone engine for capturing point-in-tim
Ensures stateful pods are placed on the node where a local volume is provisioned.
karpenter-provider-aws is a Kubernetes node autoscaler and infrastructure provider for AWS. It serves as a node lifecycle manager and cluster cost optimizer that automatically provisions and removes compute instances based on the resource requirements of pending pods. The project distinguishes itself through advanced AWS spot instance orchestration and price-capacity optimized selection to reduce cloud spend. It minimizes costs by consolidating underutilized nodes and prioritizing spot or reserved instances over on-demand capacity, while proactively migrating workloads before cloud provider i
Applies temporary startup taints to new nodes to prevent pod scheduling until networking and agents are ready.
Agones ist ein Kubernetes-Game-Server-Orchestrator, der für das Deployment, die Skalierung und die Verwaltung dedizierter Multiplayer-Game-Server-Prozesse in einem verteilten Cluster entwickelt wurde. Er bietet die notwendige Kerninfrastruktur, um einzelne oder gruppierte Serverprozesse zur Unterstützung von Echtzeit-Multiplayer-Gaming-Sessions bereitzustellen. Das System enthält einen Fleet-Manager zur Automatisierung des Lebenszyklus von Servergruppen basierend auf der Spielernachfrage sowie einen Health-Monitor zur Verfolgung der Konnektivität und des operativen Status aktiver Prozesse. Er integriert sich in Cluster-Autoscaler, um Server-Ressourcenanforderungen mit der Skalierung der Cloud-Infrastruktur zu synchronisieren. Die Orchestrierungsschicht deckt automatisierte Fleet-Skalierung und dediziertes Server-Hosting ab und nutzt Health-Monitoring zum Export operativer Metriken.
Utilizes Kubernetes scheduling constraints like taints and labels to place workloads on optimal hardware for low latency.
kube-state-metrics is a Kubernetes metrics exporter that generates Prometheus-compatible metrics from the current state of cluster objects such as pods, deployments, and nodes. It operates by watching the Kubernetes API server and transforming resource snapshots into metric families, which are then exposed over an HTTP endpoint in the Prometheus text-based exposition format for direct scraping. The project distinguishes itself through horizontal scaling capabilities, distributing metric collection across multiple instances using object UID hashing to reduce per-instance memory consumption. It
Limits which nodes a pod can run on by requiring the node to have specific label values.
Descheduler ist ein Kubernetes-Workload-Rebalancer und Pod-Eviction-Manager, der darauf ausgelegt ist, die Ressourcenverteilung zu optimieren und die Cluster-Stabilität aufrechtzuerhalten. Er identifiziert und entfernt Pods, die Scheduling-Einschränkungen oder Gesundheitsanforderungen nicht mehr erfüllen, und ermöglicht es dem Cluster, diese auf geeignetere Nodes zu verschieben. Das Projekt bietet spezialisierte Funktionen zum Ausgleich der Node-Ressourcenauslastung, zur Durchsetzung von Topology-Spread-Constraints und zum Entfernen doppelter Pods zur Verbesserung der Verteilung. Es fungiert zudem als Autoscaler-Helfer, indem es Workloads auf weniger Nodes verdichtet, um das Downscaling ungenutzter Infrastruktur zu erleichtern. Das System deckt eine Vielzahl von Wartungsaufgaben ab, einschließlich der Bereinigung fehlerhafter, instabiler oder veralteter Pods sowie der Durchsetzung von Node-Affinity- und Taint-Regeln. Es enthält Sicherheitsmechanismen wie die Validierung der Scheduling-Passgenauigkeit, um sicherzustellen, dass Pods vor der Eviction neu geplant werden können, label-basiertes Filtern zum Schutz kritischer Workloads sowie einen Dry-Run-Modus zur Vorschau von Änderungen. Das Tool kann als kontinuierlicher Hintergrundprozess oder als wiederkehrender Cron-Job bereitgestellt werden und unterstützt Hochverfügbarkeit durch Leader-Election.
Moves pods that no longer satisfy node affinity or topology spread constraints to more appropriate nodes.
Mgmt ist ein verteiltes Konfigurationsmanagementsystem, das den gewünschten Zustand von Clustern mittels ereignisgesteuerter Automatisierung und Closed-Loop-Feedback aufrechterhält. Es fungiert als Infrastruktur-Automatisierungs-Engine, die Systemzustandskorrekturen in Echtzeit basierend auf Ressourcenüberwachung und vordefinierten Spezifikationen auslöst. Das System enthält einen verteilten Cluster-Node-Selektor für die Wahl von Teilmengen von Hosts basierend auf spezifischen Strategien und Einschränkungen, um Workloads zu verteilen. Es verfügt zudem über einen Cloud-Infrastruktur-Manager für die Steuerung des Lebenszyklus von virtuellen Maschineninstanzen, einschließlich Image-Deployment, Regionsauswahl und Startup-Skripten, ergänzt durch einen Hardware-Firmware-Orchestrator für die Installation und Verifizierung von Binärdateien auf Baseboard-Management-Controllern. Zusätzliche Funktionen decken parallele Task-Ausführung, lens-basierte Konfigurationsdateimodifikation und System-Metadatenabruf ab. Das Toolset bietet zudem Dienstprogramme für Datentyp-Transformation, Format-Dekodierung und Umgebungsinspektion, um aktuelle Systemzustände zu bestimmen.
Distributes workloads across a cluster by selecting hosts based on specific strategies and hardware constraints.