-
Notifications
You must be signed in to change notification settings - Fork 601
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
Channels: Implement scale subresource #2864
Comments
Let's discuss this at the next eventing WG meeting. |
On the surface this sounds better than the previously proposed approach with annotations, that are less or more directly tied to an implementation. So, yeah - I am for a more generic approach here, where KEDA is an impl. details 👍 |
With this you will have To enable autoscaling you will still need the integration part, something that creates the resource (KEDA's To support another autoscaling tool, similar properties will need to be exposed (ie. create some CR with the metadata). |
Annotations are used in Knative Serving so would be good to use them as well in Knative Eventing? Last time we discussed it in WG we decided to define the goals - here is public google doc with initial notes from the meeting: https://docs.google.com/document/d/1usNmsuHBWzVaL5GGC873iGVrkKXGbc6t7bLHJL38Cyg/edit?usp=sharing (anybody should be able to edit it) |
@zroubalik @grantr @matzew added to delivery WG agenda |
Just as a clarification when talk about scaling channels we want to scale part it is doing delivery of events (take from form event source and dispatches over HTTP to subscribers) - that means that we may expose part of channel as Scale subresource? |
I understand the general idea that having a Scale subresource on the Channel would leave it up to each Channel implementation to determine what "internally-managed" resources (e.g. Deployments) need to scale. However, taking the Kafka channel as an example, the underlying Deployments are multi-tenant from a consumer group perspective, while the metrics that should drive scaling must be per consumer-group (that's what lag means in Kafka: each consumer group's consumer-offset relative to the end-position on each partition). To effectively manage scaling, perhaps the Kafka Channel should be refactored so that there is a 0-N (where N=num-partitions) pool of dispatcher deployments per consumer group. But even then it's not possible to manage the per consumer group scaling with a single Scale subresource for the Channel. |
The scale subresource enables getting/setting the number of replicas for the resource. What does it mean for a channel to have replicas? How does a scale of Channels are logical constructs, not physical, and don't lend themselves to scale the same way a Deployment does. It seem that what you want to scale is the dispatcher, not the channel. |
I have two concerns about scaling the actual KafkaChannel implementation i want to share, I'm not sure if they apply to the general discussion here (for sure they apply to IMC too):
|
do you mean "what subscription it wants to handle"? and....
"dispatcher per subscription"? |
I suppose it makes sense to agree on what channel it wants to agree in our actual architecture
Dispatcher per subscription is the ultimate goal i think |
Thank you all for the great input, there are difinitely things I was missing before :) |
This issue is stale because it has been open for 90 days with no |
Problem
Scale subresource provides unified kubernetes way on scaling resources.
KEDA is currently planning to support scaling of any Resource that has scale subresource. If we define scale subresource on Channel, we will able to easily plug KEDA in for autoscaling, or eventually any other tool that support scaling on scale subresource. It gives flexibility for users to choose any autoscaler they want to, as it don't neccessary bring hard dependency on KEDA.
Persona:
System Integrator
Exit Criteria
Channel and at least one specific implementation has scale subresource
Time Estimate (optional):
How many developer-days do you think this may take to resolve?
weeks
Additional context (optional)
#2154
The text was updated successfully, but these errors were encountered: