Zum Hauptinhalt springen

Immich skalieren

Immich wurde mit modernen Bereitstellungspraktiken entwickelt, und das Backend ist darauf ausgelegt, mehrere Instanzen parallel auszuführen. Das einzige, was Sie dabei beachten müssen, ist, dass jede Instanz mit der gemeinsamen Infrastruktur verbunden sein muss. Das bedeutet, sie sollten Zugriff auf dieselben Postgres- und Redis-Instanzen haben und dieselben Dateien in die Container eingebunden werden.

Das Skalieren kann aus vielen Gründen nützlich sein. Vielleicht haben Sie einen Gaming-PC, den Sie für das Transkodieren und die Thumbnail-Generierung nutzen möchten, oder Sie betreiben einen Kubernetes-Cluster über eine Handvoll leistungsstarker Server, die Sie nutzen möchten.

Info

Wenn Sie nur eine einzelne Maschine haben, um Immich auszuführen, wird das Skalieren auf mehrere Container wahrscheinlich keinen Vorteil bringen. Ein Immich-Container führt mehrere Hintergrundaufgaben gleichzeitig aus, und Sie können ihre Anzahl im Administrationsbereich erhöhen.

Die Details, wie man über mehrere Maschinen skaliert, variieren stark zwischen verschiedenen Umgebungen und erfordern einige Kenntnisse zur Einrichtung. Daher gibt dieser Leitfaden keine spezifischen Anweisungen. In einigen Fällen kann das Hochskalieren so einfach sein wie das Erhöhen der Replikationsanzahl in einer Kubernetes-Bereitstellung, in anderen Fällen könnte es erforderlich sein, Netzwerktunnel oder NFS-Mounts zu konfigurieren. Die Details bleiben dem Leser überlassen ;)

Worker

Standardmäßig enthält jeder laufende immich-server-Container mehrere interne Worker. Wenn Sie nur skalieren, um mehr Hintergrundaufgaben zu bearbeiten, können Sie den für die API verantwortlichen Worker deaktivieren. Siehe Worker für weitere Details.

Skalierung nach unten

Auf die gleiche Weise, wie Sie auf mehrere Container skalieren können, können Sie sich auch dazu entscheiden, nach unten zu skalieren. Alle Zustände werden in Postgres, Redis und dem Dateisystem gespeichert, sodass kein Risiko besteht, beispielsweise einen laufenden immich-server-Container zu stoppen, wenn Sie Ihre GPU für Spiele nutzen möchten. Solange ein API-Worker läuft, können Sie Immich weiterhin durchsuchen, und Jobs warten darauf, verarbeitet zu werden, bis ein Worker verfügbar ist.