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

Pulsar function replicas auto scaling #18584

Open
1 of 2 tasks
zzzming opened this issue Nov 23, 2022 · 4 comments
Open
1 of 2 tasks

Pulsar function replicas auto scaling #18584

zzzming opened this issue Nov 23, 2022 · 4 comments
Labels

Comments

@zzzming
Copy link
Contributor

zzzming commented Nov 23, 2022

Search before asking

  • I searched in the issues and found nothing similar.

Motivation

Pulsar function and connector in Kubernetes runtime should be able to auto scale based on resource usage or the input topic backlog size or some other metrics. The auto scale should be horizontal scaling.

Solution

No response

Alternatives

Use the existing Kubernetes HPA. But the state of replicas won't be saved because function stop removes the function statefulset. The parallelism is save in bookkeeper not Kubernetes (upon statefulset removal) in the current implementation.

Anything else?

No response

Are you willing to submit a PR?

  • I'm willing to submit a PR!
@hpvd
Copy link

hpvd commented Nov 23, 2022

maybe this pulsar function in mesh scaling is interesting
streamnative/function-mesh#457

@michaeljmarshall
Copy link
Member

Thanks for the suggestion @hpvd. I think this issue is requesting an improvement to the kubernetes runtime that ships with pulsar.

@hpvd
Copy link

hpvd commented Nov 28, 2022

jep. You are right and sorry the issue was not even the right target to link (it's a preview how function scaling in function mesh should/will work in flexible way in the near future -> using keda)

-> Wanted to point to a solution how functions could be auto-scaled today (with additional tool: function-mesh)

With Kubernetes Horizontal Pod Autoscaler (HPA), Function Mesh supports automatically scaling the number of Pods (Pulsar instances) that are required to run Pulsar functions, sources, and sinks.

Function Mesh auto-scales the number of Pods based on the CPU usage, memory usage, and custom metrics.

source:
https://functionmesh.io/docs/scaling

@github-actions
Copy link

The issue had no activity for 30 days, mark with Stale label.

@github-actions github-actions bot added the Stale label Dec 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants