|
| 1 | + |
| 2 | +# vcluster |
| 3 | + |
| 4 | +## **[GitHub](https://github.com/loft-sh/vcluster)** • **[Website](https://www.vcluster.com)** • **[Quickstart](https://www.vcluster.com/docs/getting-started/setup)** • **[Documentation](https://www.vcluster.com/docs/what-are-virtual-clusters)** • **[Blog](https://loft.sh/blog)** • **[Twitter](https://twitter.com/loft_sh)** • **[Slack](https://slack.loft.sh/)** |
| 5 | + |
| 6 | +Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces. |
| 7 | + |
| 8 | +## Prerequisites |
| 9 | + |
| 10 | +- Kubernetes 1.18+ |
| 11 | +- Helm 3.10.0+ |
| 12 | + |
| 13 | +## Get Helm Repository Info |
| 14 | + |
| 15 | +```bash |
| 16 | +helm repo add loft-sh https://charts.loft.sh |
| 17 | +helm repo update |
| 18 | +``` |
| 19 | + |
| 20 | +See [helm repo](https://helm.sh/docs/helm/helm_repo/) for command documentation. |
| 21 | + |
| 22 | +## Install Helm Chart |
| 23 | + |
| 24 | +```bash |
| 25 | +helm upgrade [RELEASE_NAME] loft-sh/vcluster -n [RELEASE_NAMESPACE] --create-namespace --install |
| 26 | +``` |
| 27 | + |
| 28 | +See [vcluster docs](https://vcluster.com/docs) for configuration options. |
| 29 | + |
| 30 | +See [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) for command documentation. |
| 31 | + |
| 32 | +## Connect to the vcluster |
| 33 | + |
| 34 | +In order to connect to the installed vcluster, please install [vcluster cli](https://www.vcluster.com/docs/getting-started/setup) and run: |
| 35 | + |
| 36 | +```bash |
| 37 | +vcluster connect [RELEASE_NAME] -n [RELEASE_NAMESPACE] |
| 38 | +``` |
| 39 | + |
| 40 | +## Uninstall Helm Chart |
| 41 | + |
| 42 | +```bash |
| 43 | +helm uninstall [RELEASE_NAME] |
| 44 | +``` |
| 45 | + |
| 46 | +This removes all the Kubernetes components associated with the chart and deletes the release. |
| 47 | + |
| 48 | +See [helm uninstall](https://helm.sh/docs/helm/helm_uninstall/) for command documentation. |
| 49 | + |
| 50 | +### Why Virtual Kubernetes Clusters? |
| 51 | + |
| 52 | +- **Cluster Scoped Resources**: much more powerful than simple namespaces (virtual clusters allow users to use CRDs, namespaces, cluster roles etc.) |
| 53 | +- **Ease of Use**: usable in any Kubernetes cluster and created in seconds either via a single command or [cluster-api](https://github.com/loft-sh/cluster-api-provider-vcluster) |
| 54 | +- **Cost Efficient**: much cheaper and efficient than "real" clusters (single pod and shared resources just like for namespaces) |
| 55 | +- **Lightweight**: built upon the ultra-fast k3s distribution with minimal overhead per virtual cluster (other distributions work as well) |
| 56 | +- **Strict isolation**: complete separate Kubernetes control plane and access point for each vcluster while still being able to share certain services of the underlying host cluster |
| 57 | +- **Cluster Wide Permissions**: allow users to install apps which require cluster-wide permissions while being limited to actually just one namespace within the host cluster |
| 58 | +- **Great for Testing**: allow you to test different Kubernetes versions inside a single host cluster which may have a different version than the virtual clusters |
| 59 | + |
| 60 | +Learn more on [www.vcluster.com](https://vcluster.com). |
| 61 | + |
| 62 | + |
| 63 | + |
| 64 | +Learn more in the [documentation](https://vcluster.com/docs/what-are-virtual-clusters). |
0 commit comments