Skip to content
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

Open
bo0tzz opened this issue May 20, 2024 · 9 comments
Open

Add support for running separate workers #94

bo0tzz opened this issue May 20, 2024 · 9 comments

Comments

@bo0tzz
Copy link
Member

bo0tzz commented May 20, 2024

(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.

@djjudas21
Copy link

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.

@bo0tzz
Copy link
Member Author

bo0tzz commented Jun 12, 2024

@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?

@djjudas21
Copy link

@bo0tzz I don't know enough about the Immich API - is it safe to run multiple replicas without hitting concurrency issues?

@bo0tzz
Copy link
Member Author

bo0tzz commented Jun 12, 2024

Yes, if it wasn't I wouldn't suggest it ;)

@krypton9208
Copy link

How can i increase number of replicas by helm values for each deployments/StatefulSets ?

@djjudas21
Copy link

@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

@prometheanfire
Copy link

Is the server written in such a way that it can run like this?

@bo0tzz
Copy link
Member Author

bo0tzz commented Oct 17, 2024

Yes, as also mentioned upthread.

@djjudas21
Copy link

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 👌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants