Upgrade¶
So bringen Sie den Server auf ein neues Release, danach die Agenten auf den GPU-Maschinen, und so stellen Sie einen Cluster auf eine neuere Runtime um. Jeder dieser Schritte ist eigenständig und wird von Ihnen gestartet; nichts aktualisiert sich von selbst.
| Was | Wie | Was es unterbricht |
|---|---|---|
| Der Server | faden upgrade |
Die Konsole und das Gateway, für die Minuten, in denen die Dienste neu starten. Die Modelle laufen weiter |
| Der Agent einer Maschine | Die Installationszeile auf der Maschine erneut ausführen | Nichts: Der Agent startet neu, die Modelle laufen weiter |
| Die Runtime eines Clusters | Laufzeit auf der Seite des Clusters | Jedes Modell auf diesem Cluster, solange es neu lädt |
Bevor Sie beginnen¶
- Freier Speicherplatz. Die neuen Images brauchen einige GB, ein neues Runtime-Image bis zu etwa 15 GB pro
Maschinenart, und die Sicherung, die das Upgrade anlegt, braucht Platz für die Datenbanken. Prüfen Sie das mit
df -h. - Wissen, für welche Installation das Werkzeug eingerichtet ist:
faden config shownennt sie (install_dir). - Einen Zeitpunkt wählen. Während die Dienste neu starten, sehen die Benutzer eine Wartungsseite.
Den Server aktualisieren¶
-
Aktualisieren Sie das Kommandozeilenwerkzeug. Es bringt das Release mit:
-
Sehen Sie sich an, was das Upgrade tun würde:
Es nennt das Release, auf das es wechselt (
Release: <current> -> <new> (pull published images)). -
Führen Sie es aus:
-
Prüfen Sie das Ergebnis (siehe unten).
Das Upgrade, der Reihe nach:
- prüft Docker und stellt sicher, dass kein Container, den es gleich ersetzt, von etwas anderem angelegt wurde;
- sichert jede Datenbank, die
.envund das Zertifikatsmaterial nach~/fadenstack/backups/<time>/und bricht ab, wenn sich nichts sichern ließ; - ersetzt die Dateien der Installation durch die des neuen Release und ergänzt in der
.envnur die Einstellungen, die das Release neu einführt: Jeder Wert, den Sie gesetzt haben, bleibt erhalten, außer der Bemessung der Dienste, die wie beifaden tuneneu für den Host berechnet wird; - lädt die Images des neuen Release herunter;
- startet die Dienste hinter der Wartungsseite neu; hier laufen die Datenbankmigrationen;
- wartet, bis die Konsolen-API antwortet, und hebt dann die Wartungsseite auf;
- holt die Runtime-Images, die das neue Release nennt. Nur was sich geändert hat, wird heruntergeladen. Ein
fehlgeschlagener Download hält nichts auf: Wiederholen Sie ihn mit
faden runtime-images.
| Option | Was sie tut |
|---|---|
--dry-run |
Zeigen, was passieren würde, nichts ändern |
-y |
Vor dem Start nicht nachfragen |
--backup-dir PATH |
Die Sicherung vor dem Upgrade woanders ablegen |
--no-backup |
Die Sicherung überspringen. Nur, wenn Sie eine aktuelle haben |
--runtime-images ARCHS |
Welche Runtime-Images geholt werden: all, none, x86_64, aarch64. Bleibt gespeichert |
Achtung
Ein Upgrade geht nur vorwärts: Die Datenbanken werden auf das neue Release migriert. Das Werkzeug weigert sich, eine Installation auf ein älteres Release zu bringen, und zum vorherigen Release zurückzugehen ist noch nicht möglich (siehe Zurückgehen).
Änderungen, die Sie an den Dateien der Installation selbst vorgenommen haben, z. B. an nginx/nginx.conf, werden
ersetzt. Halten Sie Ihre Änderungen in der .env.
Was die Benutzer währenddessen sehen¶
Während die Dienste neu starten, zeigt jede Seite der Konsole „Fadenstack wird aktualisiert“ und lädt sich selbst
wieder in die Konsole, sobald sie zurück ist. Die API (/api) und das Gateway (/v1) antworten mit 503 und
Retry-After: 30, sodass Skripte und SDKs warten und es erneut versuchen können. Eine offen gelassene
Konsolenseite bemerkt die neue Version und bietet Neu laden an; eine Seite mit eingegebenem, aber nicht
gesendetem Text wird nie von selbst neu geladen.

Die Modelle auf den Clustern laufen die ganze Zeit weiter: Ein Cluster läuft auf seinen Maschinen, nicht auf dem Server.
Wartung von Hand¶
Dieselbe Wartungsseite können Sie für Ihre eigenen Arbeiten einschalten. Die Dienste laufen weiter; nur der Eingang ändert sich.
faden maintenance on -m "Back at 15:00" # der Hinweis erscheint auf der Seite
faden maintenance status
faden maintenance off
Ein Upgrade lässt eine Wartung, die Sie von Hand eingeschaltet haben, eingeschaltet.
Prüfen¶
faden status # alle Dienste laufen; gesund, wo es eine Prüfung gibt
curl --cacert ~/fadenstack/tls/ca.crt https://ai.example.internal/api/health # 200
Melden Sie sich dann an der Konsole an. Maschinen und Cluster sind wie zuvor.
Die Agenten der Maschinen aktualisieren¶
Ein neues Release kann einen neueren Node-Agenten erwarten, als auf den Maschinen läuft. Die Liste Maschinen und die Seite jeder Maschine zeigen dann bei dieser Maschine Agent Version verfügbar, mit der Version, die der Server erwartet. Agenten aktualisieren sich nie selbst, und der Server aktualisiert sie nie: Sie wählen das Zeitfenster.
- Öffnen Sie in der Konsole Maschinen, wählen Sie Maschine hinzufügen und kopieren Sie die Installationszeile.
- Führen Sie die Zeile auf jeder Maschine erneut aus, genauso wie beim ersten Mal: mit
sudobei einem Agenten, der als Systemdienst läuft, ohnesudobei einem, der als Benutzerdienst läuft.
Das Installationsprogramm lädt den Agenten herunter, den der Server jetzt erwartet, erkennt, dass die Maschine bereits Mitglied ist, und startet den Agenten mit dem neuen Build neu. Es gibt nichts zu genehmigen. Die Modelle auf der Maschine laufen weiter: Der Agent ist die Verbindung der Maschine zum Server, und die Container des Clusters hängen nicht davon ab, dass er läuft.
Aktualisieren Sie die Agenten bald nach einem Upgrade. Manche Funktionen brauchen einen aktuellen Agenten auf jeder Maschine eines Clusters, und die Konsole nennt die Maschinen, die aktualisiert werden müssen, wenn einer fehlt (z. B. auf der Karte Verkehr zwischen den Maschinen des Clusters oder im Plan zum Leeren einer Maschine).
Maschinen ohne Internetzugang¶
Maschinen ohne Internetzugang installieren den Agenten aus der eigenen Kopie des Servers in
~/fadenstack/agent-binaries/. Ersetzen Sie diese Dateien nach jedem Server-Upgrade durch die Builds des neuen
Release (faden-agent-linux-x86_64, faden-agent-linux-aarch64, mit ihren .sha256-Dateien) von der
Release-Seite des Projekts. Nichts ersetzt sie für Sie, und eine alte Kopie hält die Maschinen zurück, die darauf
angewiesen sind.
Einen Cluster auf eine andere Runtime umstellen¶
Eine Runtime ist das Image, das die Maschinen eines Clusters ausführen: Ray und vLLM zusammen, gebaut für diese Maschinenart. Die Karte Laufzeit des Clusters zeigt, ob sie zertifiziert ist: Zertifiziert, Teilweise zertifiziert oder Nicht zertifiziert. Ein Release liefert für jede Maschinenart eine als Empfohlen markierte Runtime, kann eine neuere Vorschau mitliefern und behält eine ältere, zu der Sie zurückkehren können. Ein neuer Cluster bekommt die empfohlene.
Ein Cluster behält die Runtime, mit der er gestartet wurde: über Neustarts hinweg, beim Wiederanlaufen nach einer Störung und bei Server-Upgrades, die eine neuere mitbringen. Ist eine neuere zertifizierte Runtime verfügbar, zeigt die Karte Laufzeit des Clusters das an. Nichts ändert sich, bis Sie umschalten.
- Öffnen Sie Cluster und dann den Cluster.
-
Wählen Sie auf der Karte Laufzeit unter Umschalten auf die Runtime aus und wählen Sie Umschalten.

-
Lesen Sie die Warnung und wählen Sie Mit dieser Laufzeit neu starten.
Der Container jeder Maschine wird aus dem neuen Image neu erstellt (eine Maschine, die es noch nicht hat, holt es zuerst), und jedes Modell auf dem Cluster lädt neu. Planen Sie ein Zeitfenster dafür ein. Eine Vorschau führt Modelle aus, die die empfohlene Runtime nicht ausführen kann; wählen Sie sie für einen Cluster, der diese Modelle braucht. Der Modell-Marktplatz zeigt Läuft hier nicht bei einem Modell, das eine neuere Runtime braucht, als der Cluster ausführt (siehe Modelle).
Zurückgehen¶
Wird noch getestet
Das Zurückgehen nach einem Upgrade wird noch getestet und führt nur einen Teil des Weges zurück. Eine Wiederherstellung bringt die Daten auf den Stand vor dem Upgrade, aber der Server bleibt auf dem neuen Release: Seine Programme und die Dateien der Installation bleiben, wie das Upgrade sie hinterlassen hat, und die Datenbanken werden beim Start der Dienste erneut auf das neue Release migriert. Zum früheren Release selbst zurückzugehen ist noch nicht möglich. Der sichere Weg zurück ist ein Snapshot des ganzen Servers, aufgenommen vor dem Upgrade: ein Snapshot der virtuellen Maschine oder ein Festplatten-Image.
Jedes Upgrade hinterlässt eine Sicherung in ~/fadenstack/backups/<time>/. Um die Daten auf den Stand vor dem
Upgrade zurückzubringen, stellen Sie diese Sicherung wieder her:
Die Wiederherstellung spielt jede Datenbank, die .env und das Zertifikatsmaterial zurück und startet die
Dienste neu. Alles, was nach der Sicherung geschehen ist, geht verloren. Ein Cluster, der nach der Sicherung
erstellt wurde, läuft auf seinen Maschinen weiter; übernehmen Sie ihn, statt ihn neu zu erstellen (siehe
Cluster übernehmen). Mehr zur Wiederherstellung: Sicherungen.
Wenn es nicht funktioniert¶
These containers have names this installation uses, but it did not create them. Ein Container mit einem der
Namen von Fadenstack wurde auf andere Weise angelegt, von Hand oder von einem anderen Compose-Projekt. Die Meldung
listet diese Container auf, zusammen mit dem Befehl, um sie zu entfernen (docker rm -f <name>). Beim Entfernen
eines Containers bleiben seine Daten-Volumes erhalten. Führen Sie das Upgrade danach erneut aus.
This CLI (<version>) is older than the install (<version>). Das Werkzeug ist älter als das Release, mit dem
die Installation läuft. Aktualisieren Sie zuerst das Werkzeug.
Backup failed — aborting upgrade. Meist eine volle Festplatte oder ein Postgres, das nicht läuft. Schaffen
Sie Platz, prüfen Sie faden status und führen Sie das Upgrade erneut aus. Verwenden Sie --no-backup nur, wenn
Sie eine aktuelle Sicherung haben.
Backend did not become healthy within 120 s. Die Dienste wurden neu gestartet, aber die Konsolen-API
antwortet noch nicht. Lesen Sie faden logs faden-backend. Die Wartungsseite wird trotzdem aufgehoben, damit
erreichbar ist, was läuft.
... this release names a build that is on no registry. Ein Runtime-Image für eine Maschinenart ist nicht
veröffentlicht. Das Upgrade ist davon nicht betroffen, und laufende Cluster behalten ihre Images. Eine Maschine
dieser Art kann das Image weiterhin von einer anderen Maschine ihres Clusters bekommen, die es hat.
Die Festplatte ist voll. Postgres, der Log-Speicher und die anderen Speicher starten immer wieder neu. Nichts
funktioniert, bis wieder Platz da ist: Entfernen Sie Images, die kein Container verwendet (docker image prune),
verschieben Sie alte Sicherungen vom Server und führen Sie das Upgrade dann erneut aus. Das Dashboard warnt
früher: Wenig Speicherplatz.