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

How to control a huge vcluster #2396

Open
daixiang0 opened this issue Jan 14, 2025 · 8 comments
Open

How to control a huge vcluster #2396

daixiang0 opened this issue Jan 14, 2025 · 8 comments

Comments

@daixiang0
Copy link

Is your feature request related to a problem?

Thinking about this case, one user create a vcluster, as time goes by, the size of cluster becomes larger and larger.

In this time, this vcluster is very close to a true k8s cluster, while it is still controlled in one POD, no duplication can improve QoS, no HA. Now, we need a true control k8s plane which support expansion and HA.

Which solution do you suggest?

Support control plane split into multiple PODs, use service to do balancing, then each component can Dynamic expanse and contract.

Since we use SQLite as backend store, the split process(expanse) or unite process(contract) do not impact workload.

Which alternative solutions exist?

I only know change the codes by hand.

Additional context

No response

@matskiv
Copy link
Contributor

matskiv commented Feb 6, 2025

vCluster can be deployed in HA configuration (docs), and you can change the resource requests and limits. Service is already used for the API traffic.
vCluster doesn't manage itself, so any automation of the resizing process should be done with external tools, e.g. VPA/HPA.

@daixiang0
Copy link
Author

@matskiv why vCluster cannot manage a Virtual Cluster?

As I said, at the beginning, one replica for control plane is enough, with time goes, how to change to multiple replica? That would be a great feature if vCluster support automatic expansion for virtual cluster control plane.

@matskiv
Copy link
Contributor

matskiv commented Feb 7, 2025

why vCluster cannot manage a Virtual Cluster?

vcluster project itself is about running a virtual kubernetes cluste, for managing a fleet of virtual clusters there is vCluster Platform or cluster-api-provider-vcluster

As I said, at the beginning, one replica for control plane is enough, with time goes, how to change to multiple replica? That would be a great feature if vCluster support automatic expansion for virtual cluster control plane.

That is supported, just not with the SQLite as the backing store. Docs page about HA covers that.

@daixiang0
Copy link
Author

daixiang0 commented Feb 8, 2025

why vCluster cannot manage a Virtual Cluster?

vcluster project itself is about running a virtual kubernetes cluste, for managing a fleet of virtual clusters there is vCluster Platform or cluster-api-provider-vcluster

As I said, at the beginning, one replica for control plane is enough, with time goes, how to change to multiple replica? That would be a great feature if vCluster support automatic expansion for virtual cluster control plane.

That is supported, just not with the SQLite as the backing store. Docs page about HA covers that.

Here the doc says that when deploy, we can set multiple replicas, how about automatic expansion? I do not see those info, do you mean at the beginning, set 1 replica? While I do not find how to add replicase, could you help me?

@matskiv
Copy link
Contributor

matskiv commented Feb 10, 2025

As I said above - automation of the resizing process should be done with external tools, e.g. VPA/HPA

@daixiang0
Copy link
Author

Just double confirm, does it work if I set highAvailability.replicas as 1 since I want to update replicas to 3 or higher in the future?

Or no need to set, I can update replicas as 3 by hand and vCluster auto enter HA state?

@matskiv
Copy link
Contributor

matskiv commented Feb 10, 2025

The replicas need to be changed in the configuration (controlPlane.statefulSet.highAvailability.replicas), changing it just on the StatefulSet object in k8s might not work.

@daixiang0
Copy link
Author

OK, I will test functions if I set highAvailability.replicas to 1.

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

No branches or pull requests

2 participants