Перейти к основному содержимому

Масштабирование Immich

Immich создан с учетом современных практик развертывания, а его серверная часть разработана так, чтобы поддерживать возможность запуска нескольких экземпляров параллельно. Единственным требованием в этом случае является то, что все экземпляры должны быть подключены к общей инфраструктуре. Это означает, что они должны иметь доступ к тем же экземплярам Postgres и Redis, а также одинаковые файлы должны быть смонтированы в контейнеры.

Масштабирование может быть полезно по многим причинам. Возможно, у вас есть игровой ПК, который вы хотите использовать для перекодирования и генерации миниатюр, или вы управляете кластером Kubernetes на нескольких мощных серверах, которые вы планируете задействовать.

информация

Если у вас есть только одна машина для запуска Immich, масштабирование на несколько контейнеров вряд ли принесет какую-либо пользу. Контейнер Immich способен выполнять сразу несколько фоновых задач, и количество этих задач можно увеличить через панель администратора.

Детали масштабирования на нескольких машинах могут значительно различаться в зависимости от среды и потребуют определенных знаний для настройки, поэтому данный гид не предоставляет конкретных инструкций. В некоторых случаях масштабирование может быть таким простым, как увеличение количества реплик в развертывании Kubernetes, в других же может понадобиться настройка сетевых туннелей или подключений NFS. Детали оставлены на усмотрение читателя ;)

Воркеры

По умолчанию каждый запущенный контейнер immich-server включает в себя несколько внутренних воркеров. Если вы масштабируете только для выполнения большего количества фоновых задач, вы можете отключить воркер, отвечающий за API. Смотрите воркеры для получения более подробной информации.

Уменьшение масштаба

Точно так же, как вы можете масштабировать развертывание до нескольких контейнеров, вы также можете уменьшить его масштаб. Весь статус сохраняется в Postgres, Redis и файловой системе, поэтому нет риска при остановке запущенного контейнера immich-server. Например, если вы хотите использовать свою видеокарту для игр. Пока работает воркер API, вы все равно сможете просматривать Immich, а задания будут ждать обработки до тех пор, пока для них не появится воркер.