Saltar al contenido principal

Escalando Immich

Immich está diseñado con prácticas modernas de implementación en mente, y el backend está diseñado para poder ejecutar múltiples instancias en paralelo. Al hacer esto, el único requisito que debes tener en cuenta es que cada instancia debe estar conectada a la infraestructura compartida. Esto significa que todas deben tener acceso a las mismas instancias de Postgres y Redis, y tener los mismos archivos montados en los contenedores.

Escalar puede ser útil por muchas razones. Tal vez tengas una PC para juegos que quieras usar para transcoding y generación de miniaturas, o quizás administres un clúster de Kubernetes en varios servidores potentes que deseas aprovechar.

información

Si solo tienes una máquina para ejecutar Immich, escalar a múltiples contenedores probablemente no te proporcione ningún beneficio. Un contenedor de Immich ejecutará múltiples tareas en segundo plano a la vez, y puedes aumentar su número desde el panel de administración.

Los detalles sobre cómo escalar en múltiples máquinas varían ampliamente entre diferentes entornos y requieren ciertos conocimientos para configurarse, por lo que esta guía no proporciona instrucciones específicas. En algunos casos, escalar puede ser tan sencillo como incrementar la cantidad de réplicas en una implementación de Kubernetes; en otros puede requerir configurar túneles de red o montajes NFS. Los detalles quedan como ejercicio para el lector ;)

Trabajadores

De manera predeterminada, cada contenedor immich-server en ejecución viene con múltiples trabajadores internos. Si estás escalando solo para manejar más tareas en segundo plano, puedes optar por deshabilitar el trabajador responsable de la API. Consulta trabajadores para más detalles.

Reducción de escala

De la misma manera en que puedes escalar a múltiples contenedores, también puedes optar por reducir la escala. Todo el estado se almacena en Postgres, Redis y el sistema de archivos, por lo que no hay riesgo en detener un contenedor inmich-server en ejecución, por ejemplo, si deseas usar tu GPU para jugar algunos juegos. Mientras haya un trabajador de API en funcionamiento, aún podrás navegar por Immich, y los trabajos esperarán a ser procesados hasta que haya un trabajador disponible para ellos.