Rolltreppe ist eine Charge oder eine berufsoptimierte horizontale Autoscaler für Kubernetes
Es ist für große Stapel- oder berufsbasierte Workloads ausgelegt, die nicht zwar abgeleitet und bewegt werden können, wenn der Cluster skalieren muss. Die Rolltreppe wird sicherstellen, dass Pods an Knoten abgeschlossen wurden, bevor sie beendet werden. Es ist auch optimiert, um den Cluster so schnell wie möglich zu skalieren, um sicherzustellen, dass Pods nicht in einem ausstehenden Zustand gelassen werden.
Berechnen Sie die Anforderungen und die Kapazität, um festzustellen, ob Sie nach oben, unten oder auf der aktuellen Skala übertragen werden sollen
Wartet, bis die Nicht-Dämonset-Pods auf Knoten abgeschlossen sind, bevor der Knoten beendet wird
Entwickelt, um an ausgewählten automatischen Skalierungsgruppen zu arbeiten, damit der Standardkubernetes-Autoscaler die serienbasierten Workloads weiter skalieren kann
Beenden Sie zuerst automatisch älteste Knoten
Unterstützung für Slack Space, um im Falle eines Anstiegs geplanter Schoten einen zusätzlichen Platz zu gewährleisten
Beendet oder faktoriert keine gekennzeichneten Knoten in Berechnungen - ermöglicht es, gekennzeichnete Knoten beim Debuggen bestehen zu können
Unterstützung für verschiedene Cloud -Anbieter - AWS nur im Moment
Skalierung und Nutzungsmetriken
Führungswahlen, damit Sie einen HA -Einsatz in einem Cluster ausführen können.
Grundlegende Unterstützung für mehrere verschiedene Arten von Instanzen in einer Knotengruppe.
Die Notwendigkeit dieses Autoscaler erfolgt aus unseren eigenen Erfahrungen mit sehr großen Stapel -Workloads, die geplant sind und der Standardautoscaler den Cluster nicht schnell genug verkleinert. Diese Workloads können vom Standardautoscaler nicht zwangsgeleitet werden und müssen abgeschlossen werden, bevor der Knoten beendet werden kann.
Siehe Dokumente
Kubernetes Version 1.24+. Die Rolltreppe wurde auf 1.24 und neuer getestet und eingesetzt. Ältere Versionen von Kubernetes haben möglicherweise Fehler oder Probleme, die verhindern, dass sie ordnungsgemäß funktionieren.
Go Version 1.20+
Abhängigkeiten und ihre verschlossenen Versionen finden Sie in go.mod
und go.sum
.
# Abhängigkeiten abrufen und Escalatormaake -Build bauen
GO Run cmd/main.go -kubeconfig = ~/.kube/config -nodeGroups = nodeGroups_config.yaml
In der Bereitstellung finden Sie eine vollständige Bereitstellungsdokumentation.
# Erstellen Sie den Docker Imagedocker Build -t -Atlassian/Rebellator.# RBAC ConfigurationKubectl erstellen -f -Dokumente/Bereitstellung/Escalator -RBAC.YAML# CREATE CONFORT MAP -Ändern # Create DeploymentKubectl Create -f -Dokumente/Bereitstellungen/Escalator -Deployment.yaml
Siehe Konfiguration
Test machen
Zum Beispiel zum Testen des Controller -Pakets:
Gehen Sie testen ./pkg/controller
Ziehen Sie Anfragen, Probleme und Kommentare willkommen. Für Zuganfragen:
Fügen Sie Tests für neue Funktionen und Fehlerbehebungen hinzu
Folgen Sie dem vorhandenen Stil (wir verwenden Goreturns, um eine Rolltreppe zu formatieren und Linusen zu formatieren).
Trenne nicht verwandte Änderungen in mehrere Pull -Anfragen
Sehen Sie sich die vorhandenen Themen an, damit die Dinge mitwirken müssen.
Stellen Sie für größere Änderungen sicher, dass Sie zunächst eine Diskussion beginnen, indem Sie ein Problem erstellen und die beabsichtigte Änderung erklären.
Atlassian verlangt von Mitwirkenden, eine als CLA bezeichnete Lizenzvereinbarung zu unterzeichnen. Dies dient als Aufzeichnung, in dem der Mitwirkende berechtigt ist, den Code/die Dokumentation/die Übersetzung in das Projekt beizutragen, und ist bereit, ihn in Verteilungen und derivativen Arbeiten zu verwenden (oder ist bereit, das Eigentum zu übertragen).
Bevor wir Ihre Beiträge akzeptieren, bitten wir Sie, den entsprechenden Link unten zu befolgen, um die CLA digital zu unterzeichnen. Die Corporate CLA ist für diejenigen gedacht, die als Mitglied einer Organisation beitragen, und die einzelnen CLA für diejenigen, die als Einzelperson beitragen.
CLA für Corporate -Mitwirkende
CLA für Einzelpersonen
Copyright (C) 2018 Atlassian und andere. Apache 2.0 lizenziert, siehe Lizenzdatei.