Skip to main content
Version: main 🚧

Deployment Basics

There are multiple ways to deploy and manage your vCluster. Review the different choices and choose the one that suits your needs.

Predeployment configuration options​

Before deploying, it's recommended to review the set of configuration options that cannot be updated post deployment. These options require deploying a new vCluster instead of upgrading your vCluster with new options.

Topologies​

Other options​

Backing store options

vCluster supports etcd or a relational database (using KINE) as the backend.This feature provides flexibility to vCluster operators. The available data store options allow you to select a data store that fits your use case.

vCluster supports the following datastore options:

warning

After deploying your vCluster, there are limited migration paths to change your backing store. Review the backing store migration options before deploying.

Configuration options​

This is the default, so you don't need to configure anything. If you want to explicitly set this option, you can use:

controlPlane:
backingStore:
database:
embedded:
enabled: true
vCluster Kubernetes distribution options

vCluster is deployed with its own Kubernetes distribution that does not need to match with the host cluster's distribution. For example, you can deploy virtual clusters with the K8s distro on top of EKS clusters.

warning

After deploying your vCluster, changing the Kubernetes distribution of vCluster is not supported.

By default, the distribution of vCluster is vanilla Kubernetes (K8s) and is the recommended distribution to use.

Deprecation notice

Support for K0s and K3s is deprecated in vCluster v0.25. K0s support is removed in v0.26.
Migration to a supported Kubernetes distribution is recommended.

The following distributions are supported for virtual clusters:

  • K8s: By default, vCluster uses vanilla Kubernetes. This is the recommended distribution.
  • K3s: A lightweight, certified Kubernetes distribution designed for resource-constrained environments, remote locations, and IoT devices.
  • K0s: A single-binary Kubernetes distribution with built-in cluster configuration. It can run on dual-stack host clusters but does not fully support dual-stack networking.
The Kubernetes distro of vCluster is completely independent of the Kubernetes distro of the host cluster. This means you can run vCluster using any supported Kubernetes distribution distribution regardless of the distribution type of the host cluster.

Host cluster compatibility​

vCluster supports specific Kubernetes versions on host clusters. For more information, see the Kubernetes compatibility matrix.

Prerequisites​

In order to deploy vcluster, you need the following:

  • kubectl
  • Helm v3.10.0+
  • Access to a Kubernetes v1.28+ cluster with permissions to deploy applications into a namespace. This is considered the host cluster for the vCluster deployment.

Host Cluster Requirements

Since vCluster runs as an application, vCluster can run on any host cluster regardless of OS or Kubernetes distribution. The Kubernetes distribution of vCluster does not need to match the Kubernetes distribution of the host cluster. For example, you can select a vCluster with k8s as the distro and run it on host cluster that's running EKS.

Deploy vCluster​

All of the deployment options below have the following assumptions:

  • A vcluster.yaml is provided. Refer to the vcluster.yaml reference docs to explore all configuration options. This file is optional and can be removed from the examples.
  • The vCluster is called my-vcluster.
  • The vCluster is be deployed into the team-x namespace.
YAML configuration

If you're not sure which options to configure, you can update most settings later by upgrading your vCluster with an updated vcluster.yaml. However, some settings—such as the backing store—can only be set during the initial deployment and cannot be changed during an upgrade.

  1. Install the vCluster CLI:

     brew install loft-sh/tap/vcluster-experimental

    If you installed the CLI using brew install vcluster, you should brew uninstall vcluster and then install the experimental version. The binaries in the tap are signed using the Sigstore framework for enhanced security.

    Confirm that you've installed the correct version of the vCluster CLI.

    vcluster --version
  2. Deploy vCluster:

    vcluster create my-vcluster --namespace team-x --values vcluster.yaml
    • Replace my-vcluster with your virtual cluster name
    • Replace team-x with the Kubernetes namespace for deployment
    • Replace vcluster.yaml with the path to your vCluster configuration file
    note

    After installation, vCluster automatically switches your Kubernetes context to the new virtual cluster. You can now run kubectl commands against the virtual cluster.

Deploy vCluster with the vCluster Platform​

Virtual clusters can be deployed as standalone virtual clusters on host clusters as described above, but there is also a vCluster Platform that is a UI to manage your virtual clusters, host clusters and other resources.

There are many features that are included as part of the vCluster Platform besides having a central management platform for virtual clusters.

If you already have vCluster Platform, learn how to deploy virtual clusters in the platform.