knative / serving

Kubernetes-based, scale-to-zero, request-driven compute
https://knative.dev/docs/serving/
Apache License 2.0
5.53k stars 1.15k forks source link

Feature-request: Simplify control plane with a consolidated deployment #13965

Open skonto opened 1 year ago

skonto commented 1 year ago

Describe the feature

Istio long ago evaluated their deployment strategy and they switched to a more consolidated model.

Right now we have a number of components that are installed by default and could be merged into one.

For example:

With a consolidated model we get some immediate benefits:

cc @ReToCode @dprotaso @rhuss @evankanderson @psschwei @nak3

dprotaso commented 1 year ago

I know various controllers have filtered informers setup with labels/namespaces - does it work when collapsing everyting into a single process?

I'm wondering if we have some limits in how we do dependency injection

skonto commented 1 year ago

I know various controllers have filtered informers setup with labels/namespaces - does it work when collapsing everyting into a single process?

We will have to adjust the informers to filter a set of labels instead of one per controller. I have tried that before at the net-istio side so it should work.

Previous work in this area https://github.com/mattmoor/mink/blob/b9148a39b2d8bbc69ca9aaf5e89a7613c0b179d8/config/core/deployments/dataplane.yaml merged things in one pod as a first step. We have some options but I would like to explore the idea of having everything in a process at least for the control plane as some stuff seem too much to be on their own. This does not need to happen at one step, could be done incrementally. Initially we could have controller, webhook, domain webhook merged and solve any issues one by one.

In general I see a good opportunity here for using Knative in other environments with small footprint requirements like edge.

skonto commented 1 year ago

/assign skonto