Modern Kubernetes environments are rarely static. Teams spin up clusters for testing, staging, and production workloads. Sometimes these clusters are physical, sometimes managed by cloud providers, and increasingly, they’re virtual clusters (vClusters).
If you’ve ever wanted to manage multiple clusters—including vClusters with a consistent approach, Sveltos can help. Sveltos is a powerful open-source project that simplifies cluster lifecycle management, configuration drift detection, and workload deployment across fleets of clusters.
In this post, we’ll walk through how to set up Sveltos, create a vCluster, and register it with Sveltos. By the end, you’ll have a working setup where you can manage a vCluster just like any other cluster in your fleet.
Prerequisites
-
Install
sveltosctl
CLI
curl -L https://github.com/projectsveltos/sveltosctl/releases/latest/download/sveltosctl-darwin-amd64 -o sveltosctl
chmod +x sveltosctl
sudo mv sveltosctl /usr/local/bin/
This tool will help us generate manifests for cluster registration and interact with Sveltos.
- Install Helm (if not already installed) Follow Helm installation docs.
Step 1: Deploy Sveltos
Install Sveltos in the management cluster:
helm upgrade --install sveltos projectsveltos/projectsveltos --repo https://projectsveltos.github.io/helm-charts --namespace projectsveltos --create-namespace
Verify deployment:
helm list -n projectsveltos
kubectl get pods -n projectsveltos
At this point, Sveltos CRDs and the controller should be active in your cluster.
Step 2: Deploy the Dashboard (Optional)
For visualization and management through UI:
helm install sveltos-dashboard projectsveltos/sveltos-dashboard -n projectsveltos
helm list -n projectsveltos
kubectl port-forward service/dashboard -n projectsveltos 8080:80
Access the dashboard at: http://localhost:8080/login
Create an admin service account and token:
kubectl create sa platform-admin -n default
kubectl create clusterrolebinding platform-admin-access --clusterrole cluster-admin --serviceaccount default:platform-admin
kubectl create token platform-admin -n default --duration=24h
Use the token to log into the dashboard.
Step 3: Create a vCluster
Create a new virtual cluster:
vcluster create my-vcluster --namespace my-team
Disconnect once created:
vcluster disconnect
Step 4: Register vCluster with Sveltos
Here’s where the integration happens.
- Generate a
SveltosCluster
manifest for the vCluster:
sveltosctl register cluster --namespace=monitoring --cluster=vcluster --pullmode --labels=environment=production,tier=backend > sveltoscluster_registration.yaml
This creates the YAML that describes your vCluster as a managed entity in Sveltos.
- Connect to the vCluster:
vcluster connect my-vcluster --namespace my-team
- Apply the registration YAML inside the vCluster:
kubectl apply -f sveltoscluster_registration.yaml
✅ And that’s it! 🎉 Your vCluster is now registered with Sveltos.
What’s Next?
With your vCluster registered, you can now:
- Apply ClusterProfiles to define policies and workloads.
- Use drift detection to ensure your vCluster stays compliant.
- Manage add-ons (like monitoring stacks) consistently across environments.
Instead of treating vClusters as temporary or “disposable,” you’ve elevated them to first-class citizens in your multi-cluster strategy.
Top comments (0)