Einführung in Katalyst
GitHub Repo: https://github.com/kubewharf/katalyst-core
Katalyst ist das Open-Source-System zur Kostenoptimierung von ByteDance. Es hat sich zum Ziel gesetzt, das Problem der unangemessenen Ressourcennutzung in Cloud-nativen Szenarien zu lösen und Lösungen für das Ressourcenmanagement und die Kostenoptimierung bereitzustellen.
Katalyst wurde im März dieses Jahres offiziell als Open Source bereitgestellt. Seit der Veröffentlichung von Version 0.1.0 wurden mehrere Kernfunktionen durch die Iteration von Version 0.2.0 fertiggestellt. Am 8. August veröffentlichte Katalyst die Version v0.3.0 . Zu den Kernfunktionen gehören erweiterte KCNR-API-Funktionen, verbesserte Framework-Skalierbarkeit, erweiterte Co-Location-Funktionen usw. Weitere Informationen finden Sie unter Katalyst GitHub .
Aktivitätshintergrund
Als Open-Source-Projekt, in das das Cloud-Native-Team von ByteDance weiterhin investiert, schätzt Katalyst den langfristigen Wert von Open Source sowie das Feedback und die Beteiligung der Open-Source-Community und ermutigt gleichzeitig auch College-Studenten dazu Nehmen Sie in der Anfangsphase an echten Open-Source-Projekten teil und erleben Sie, wie die Open-Source-Community funktioniert, und verbessern Sie Ihre persönlichen Fähigkeiten. Im GLCC-Programmier-Sommercamp , an dem ich zuvor teilgenommen habe , lockten die von Katalyst veröffentlichten relevanten Themen viele College-Studenten zur Teilnahme an. Während des Projekts kommunizierten die Dozenten und Projektstudenten aktiv über realisierbare Pläne und halfen den Studenten, sich an der Projektentwicklung zu beteiligen.
Aufgrund der thematischen Restriktionen bisheriger Aktivitäten beteiligte sich letztlich nur ein Student am Projekt. Um mehr College-Studenten, die sich für Cloud Native interessieren, zur Teilnahme an der Community zu ermutigen und auch zu hoffen, dass die Community mehr externe Stimmen und neue Kräfte erhält, planen wir, dieses Entwicklungsmodell der Zusammenarbeit mit College-Studenten in der Projektversion wiederzuverwenden Bieten Sie College-Studenten Wege und Anleitungen für die Teilnahme an der Open-Source-Community und helfen Sie der Community, mehr Feedback und Bedürfnisse zu sammeln. Auf dieser Grundlage werden wir im September die Katalyst-Open-Source-Community-Veranstaltung [ Programming Challenge ] in der Community starten. Basierend auf der entsprechenden Fähigkeitsplanung in der zukünftigen neuen Version der Community werden Problemaufgaben veröffentlicht und College-Studenten eingeladen Teilnahme an der Gestaltung und Entwicklung einiger Themen des Projekts und Bereitstellung bestimmter Belohnungen für Schüler, die die Aufgabe abschließen.
Themeneinführung
Thema 1: Unterstützung der OOM- Priorität als QoS- Erweiterung. Unterstützung der OOM-Priorität als QoS-Erweiterung
GitHub-Problem: https://github.com/kubewharf/katalyst-core/issues/216
Bitte fügen Sie Katalyst die folgenden Funktionen hinzu:
-
Benutzer können die OOM-Priorität als QoS-Verbesserung festlegen.
-
Implementieren Sie die OOM-Priorität mit
oom_score_adj
. -
Benutzer können die OOM-Priorität als QoS-Verbesserung angeben
-
oom_score_adj
Implementieren Sie die OOM-Priorität mit
Themenbeschreibung:
Derzeit konfiguriert Kubernetes unterschiedliche oom_score_adj
Werte für verschiedene QoS-Klassen. Die Reihenfolge von OOM hängt jedoch auch von anderen Dimensionsfaktoren ab, beispielsweise der Speichernutzung des Containers.
Im Colocation-Szenario ist es wichtig, strikt sicherzustellen, dass Webdienste aufgrund von OOM später beendet werden als Batch-Jobs, wenn die Speicherressourcen des Clusters knapp werden.
oom_score_adj
Derzeit konfiguriert Kubernetes unterschiedliche Werte für verschiedene QoS-Klassen . Die Reihenfolge von OOM hängt jedoch auch von anderen Dimensionen ab, beispielsweise der Speichernutzung des Containers.
Wenn in einem Co-Location-Szenario die Speicherressourcen des Clusters knapp werden, muss unbedingt sichergestellt werden, dass der Stapelverarbeitungsauftrag aufgrund von OOM früher als der Webdienst beendet wird.
Thema 2: Unterstützung der NUMA-Granularitätsberichterstattung für zurückgewonnene Ressourcen. Unterstützung der NUMA- Granularitätsberichterstattung für zurückgewonnene Ressourcen
GitHub-Problem: https://github.com/kubewharf/katalyst-core/issues/217
Bitte fügen Sie Katalyst die folgenden Funktionen hinzu:
Verbessern Sie den Mechanismus zur Ressourcenberichterstattung, um die Berichterstattung über zurückgewonnene Ressourcen auf der Granularität von NUMA-Knoten zu unterstützen.
Verbesserter Ressourcenberichtsmechanismus zur Unterstützung der detaillierten NUMA-Knotenberichterstellung über recycelte Ressourcen.
Themenbeschreibung:
Derzeit erfolgt die Berichterstattung über zurückgewonnene Ressourcen auf Knotengranularitätsebene. In Umgebungen mit NUMA-Architekturen kann dieser Ansatz jedoch zu suboptimalen Planungsergebnissen und möglichen Pod-Räumungen aufgrund von Interferenzen auf NUMA-Ebene führen.
Derzeit erfolgt die Meldung recycelter Ressourcen auf Knotengranularitätsebene. In Umgebungen mit NUMA-Architekturen kann dieser Ansatz jedoch zu suboptimalen Planungsergebnissen und möglichen Pod-Räumungen aufgrund von Interferenzen auf NUMA-Ebene führen.
Thema 3: Unterstützung der Inter-Pod- Affinität und Anti-Affinität auf NUMA- Ebene. Unterstützung der Inter- Pod- Affinität und Anti-Affinität auf NUMA-Ebene
GitHub-Problem: https://github.com/kubewharf/katalyst-core/issues/220
Bitte fügen Sie Katalyst die folgenden Funktionen hinzu:
Unterstützen Sie Inter-Pod-Affinität und Anti-Affinität auf NUMA-Ebene in Kubernetes.
Unterstützt Inter-Pod-Affinität und Anti-Affinität auf NUMA-Ebene in Kubernetes.
Themenbeschreibung:
Derzeit unterstützt Kubernetes Inter-Pod-Affinität und Anti-Affinität auf Knotenebene. Es besteht jedoch ein wachsender Bedarf, diese Unterstützung auf die NUMA-Ebene auszudehnen.
Beispielsweise können in einem Tensorflow-Trainingsjob Pods mit hohem Speicherbandbreitenverbrauch, wie z. B. Worker, die Leistung anderer Pods auf demselben NUMA-Knoten, z. B. Parameterserver, beeinträchtigen. Durch die Zuweisung dieser Pods zu verschiedenen NUMA-Knoten können solche Störungen abgemildert werden.
Derzeit unterstützt Kubernetes Inter-Pod-Affinität und Anti-Affinität auf Knotenebene. Es besteht jedoch ein wachsender Bedarf, diese Unterstützung auf die NUMA-Ebene auszudehnen.
Beispielsweise wirkt sich beim Tensorflow-Training ein hoher Speicherbandbreitenverbrauch der Worker auf den Parameterserver auf demselben NUMA-Knoten aus. Durch die Zuweisung dieser Pods zu verschiedenen NUMA-Knoten kann diese Störung abgemildert werden.
erwartete Ernte
- Erleben Sie echte Open-Source-Projekte, machen Sie sich mit den Arbeitsabläufen von Open-Source-Communities vertraut und sammeln Sie praktische Erfahrungen in der Entwicklung
- Nehmen Sie an Community-Meetings teil, kommunizieren Sie mit Open-Source-Enthusiasten und erfahren Sie mehr über die Community-Dynamik
- Projektmentor, Einzelnachhilfe, persönliche Fragen und Antworten
- Ausgezeichnete Mitwirkende, die das Projekt abschließen, erhalten außerdem einen Community-Incentive-Bonus von 5.000 Yuan (entsprechende Jingdong-Karte).
Teilnahmevoraussetzungen
- College-Studenten über 18 Jahre
- Ich liebe die Open-Source-Kultur und akzeptiere das Open-Source-Kooperationsmodell
*Wenn sich auch Nicht-Hochschulstudierende für das Thema interessieren, können Sie sich gerne an der Community beteiligen, um es aufzubauen und weiterzuentwickeln~
Beteiligen Sie sich am Prozess
-
Wählen Sie 1 Problem aus den folgenden GitHub-Problemen aus
-
Senden Sie einen Lebenslauf und einen Themenvorschlag an relevante Kontakte
- Ansprechpartner: Herr Tang
- E-Mail: [email protected]
-
Nach dem Bestehen wird sich der Projektmentor mit Ihnen in Verbindung setzen, um konkrete Entwicklungsaufgaben zu kommunizieren und mit der Entwicklung zu beginnen.
-
Nach Abschluss der Aufgabe müssen Sie einen Artikel über Ihre Erfahrungen und Gefühle bei der Teilnahme an Open-Source-Projekten schreiben und ihn in einer Drittanbieter-Community (InfoQ/CSDN/Zhihu/Open Source China usw.) oder einem Campus-Blog veröffentlichen
Aktivitätszeit
- Anmeldezeit: 1. September – 14. September
- Auswahlbenachrichtigung: 15. September
- Entwicklungszeit: 16. September – 30. Oktober
- Veröffentlichungszeitpunkt des Artikels: vor dem 10. November
- Herausragendes Thema und Ankündigung der Studierenden: 10. – 15. November
Bei Fragen wenden Sie sich bitte an den Bytedance Cloud Native Assistant:
Bitte geben Sie [Name+Firma/Schule+Titel] an
Fellow Chicken „Open-Source“ -Deepin-IDE und endlich Bootstrapping erreicht! Guter Kerl, Tencent hat Switch wirklich in eine „denkende Lernmaschine“ verwandelt. Tencent Clouds Fehlerüberprüfung und Situationserklärung vom 8. April RustDesk-Remote-Desktop-Startup-Rekonstruktion Web-Client WeChats Open-Source-Terminaldatenbank basierend auf SQLite WCDB leitete ein großes Upgrade ein TIOBE April-Liste: PHP fiel auf ein Allzeittief, Fabrice Bellard, der Vater von FFmpeg, veröffentlichte das Audiokomprimierungstool TSAC , Google veröffentlichte ein großes Codemodell, CodeGemma , wird es dich umbringen? Es ist so gut, dass es Open Source ist – ein Open-Source-Bild- und Poster-Editor-Tool