-
-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for running separate workers #94
Comments
This is an important feature for Kubernetes users. Microservices architecture is best practice for Kube, and running one huge container for everything is wasteful of resources when you have multiple nodes in the cluster. One of the main things I liked about Immich compared to PhotoPrism is the microservices architecture, so the UI/API doesn't slow down while the app is importing thousands of photos, generating thumbnails, running face recognition, etc. |
@djjudas21 note that right now there is nothing stopping you from scaling up the single container to multiple replicas. The only tradeoff is you'll be running multiple copies of the api worker as well, but maybe that's a good thing too? |
@bo0tzz I don't know enough about the Immich API - is it safe to run multiple replicas without hitting concurrency issues? |
Yes, if it wasn't I wouldn't suggest it ;) |
How can i increase number of replicas by helm values for each deployments/StatefulSets ? |
@krypton9208 in case you're still stuck on this, you need something like this in your Helm values to run 2 replicas: server:
enabled: true
controller:
replicas: 2
strategy: RollingUpdate |
Is the server written in such a way that it can run like this? |
Yes, as also mentioned upthread. |
Just to confirm I have been running 2 replicas of the Immich server as per @bo0tzz's recommendation, and it has been working fine for me 👌 |
(related: #93)
After the next release, Immich will ship as a single container with the API server and the background workers all combined, with the option to selectively enable only some of those for a running container. Ideally the chart would support running an arbitrary amount of immich containers with configuration for which workers to enable. This would for example enable dedicated transcoding workers with hwacceleration passthrough and such.
The text was updated successfully, but these errors were encountered: