跳转到主要内容

扩展 Immich

Immich 是根据现代部署实践构建的,后端设计能够并行运行多个实例。在这样做时,唯一需要注意的就是每个实例都需要连接到共享的基础设施。这意味着它们都应该能够访问相同的 Postgres 和 Redis 实例,并且容器中挂载相同的文件。

扩展可能会因多种原因而变得有用。也许您有一台游戏 PC,希望用来进行转码和缩略图生成;或者您运营了一个跨多个强大服务器的 Kubernetes 集群,并希望利用它。

信息

如果您只有一台机器来运行 Immich,则扩展多个容器可能不会提供任何好处。一个 Immich 容器将同时运行多个后台任务,您可以从管理面板中增加它们的数量。

在多台机器之间扩展的具体细节在不同环境之间会有很大不同,并且需要一些知识来设置,因此本指南不会提供具体的指示。在某些情况下,扩展可能像增加 Kubernetes 部署中的副本数量一样简单,在其他情况下,您可能需要配置网络隧道或 NFS 挂载。具体细节将留待读者自行探索 ;)

工作线程

默认情况下,每个运行的 immich-server 容器都带有多个内部工作线程。如果您扩展仅是为了处理更多后台任务,可以选择禁用负责 API 的工作线程。详细信息请参见 工作线程

减少扩展

与您可以扩展到多个容器的方式相同,您也可以选择缩小扩展。所有状态都存储在 Postgres、Redis 和文件系统中,因此停止运行中的 immich-server 容器不会有任何风险,例如如果您想使用 GPU 来玩一些游戏。只要有 API 工作线程运行,您仍然可以浏览 Immich,并且任务将等待处理,直到有可用的工作线程。