Skip to main content

Kubernetes distro

vCluster is able to use different Kubernetes distributions as a virtual cluster backend. By default, vCluster will use vanilla k8s as the virtual Kubernetes cluster.

warning

Changing the distro of vCluster is not supported once deployed.

Vanilla k8s

In order to use vanilla k8s as a backing cluster, create a vCluster with the following command:

vcluster create my-vcluster

Connect to the vCluster and start using it:

kubectl get ns
...

For more configuration options, please take a look at the k8s distro reference

k3s

k3s is a highly available, certified Kubernetes distribution designed for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances.

In order to use k3s as backing cluster, create a vCluster with the following command:

vcluster create my-vcluster --set controlPlane.distro.k3s.enabled=true

Start using it:

kubectl get ns
...

For more configuration options, please take a look at the k8s distro reference

k0s

k0s is an all-inclusive Kubernetes distribution, which is configured with all of the features needed to build a Kubernetes cluster and packaged as a single binary for ease of use. vCluster supports k0s as backing virtual Kubernetes cluster.

In order to use k0s as backing cluster, create a vCluster with the following command:

vcluster create my-vcluster --set controlPlane.distro.k0s.enabled=true

Start using it:

kubectl get ns
...

Please note that dual stack networking is not supported with k0s, you will be able to deploy it on a dual stack host cluster, but it will not have all the dual stack features.

For more configuration options, please take a look at the k8s distro reference

Config reference

distro required object pro

Distro holds virtual cluster related distro options. A distro cannot be changed after vCluster is deployed.

k8s required object pro

K8S holds K8s relevant configuration.

enabled required boolean false pro

Enabled specifies if the K8s distro should be enabled. Only one distro can be enabled at the same time.

apiServer required object pro

APIServer holds configuration specific to starting the api server.

enabled required boolean false pro

Enabled signals this container should be enabled.

image required object pro

Image is the distro image

registry required string pro

Registry is the registry of the container image, e.g. my-registry.com or ghcr.io. This setting can be globally overridden via the controlPlane.advanced.defaultImageRegistry option. Empty means docker hub.

repository required string pro

Repository is the repository of the container image, e.g. my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

controllerManager required object pro

ControllerManager holds configuration specific to starting the controller manager.

enabled required boolean false pro

Enabled signals this container should be enabled.

image required object pro

Image is the distro image

registry required string pro

Registry is the registry of the container image, e.g. my-registry.com or ghcr.io. This setting can be globally overridden via the controlPlane.advanced.defaultImageRegistry option. Empty means docker hub.

repository required string pro

Repository is the repository of the container image, e.g. my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

scheduler required object pro

Scheduler holds configuration specific to starting the scheduler. Enable this via controlPlane.advanced.virtualScheduler.enabled

image required object pro

Image is the distro image

registry required string pro

Registry is the registry of the container image, e.g. my-registry.com or ghcr.io. This setting can be globally overridden via the controlPlane.advanced.defaultImageRegistry option. Empty means docker hub.

repository required string pro

Repository is the repository of the container image, e.g. my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

env required object[] pro

Env are extra environment variables to use for the main container and NOT the init container.

resources required object pro

Resources for the distro init container

securityContext required object pro

Security options can be used for the distro init container

k3s required object pro

K3S holds K3s relevant configuration.

enabled required boolean false pro

Enabled specifies if the K3s distro should be enabled. Only one distro can be enabled at the same time.

token required string pro

Token is the K3s token to use. If empty, vCluster will choose one.

env required object[] pro

Env are extra environment variables to use for the main container and NOT the init container.

resources required object pro

Resources for the distro init container

securityContext required object pro

Security options can be used for the distro init container

image required object pro

Image is the distro image

registry required string pro

Registry is the registry of the container image, e.g. my-registry.com or ghcr.io. This setting can be globally overridden via the controlPlane.advanced.defaultImageRegistry option. Empty means docker hub.

repository required string pro

Repository is the repository of the container image, e.g. my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

k0s required object pro

K0S holds k0s relevant configuration.

enabled required boolean false pro

Enabled specifies if the k0s distro should be enabled. Only one distro can be enabled at the same time.

config required string pro

Config allows you to override the k0s config passed to the k0s binary.

env required object[] pro

Env are extra environment variables to use for the main container and NOT the init container.

resources required object pro

Resources for the distro init container

securityContext required object pro

Security options can be used for the distro init container

image required object pro

Image is the distro image

registry required string pro

Registry is the registry of the container image, e.g. my-registry.com or ghcr.io. This setting can be globally overridden via the controlPlane.advanced.defaultImageRegistry option. Empty means docker hub.

repository required string pro

Repository is the repository of the container image, e.g. my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

eks required object pro

EKS holds eks relevant configuration.

enabled required boolean false pro

Enabled specifies if the K8s distro should be enabled. Only one distro can be enabled at the same time.

apiServer required object pro

APIServer holds configuration specific to starting the api server.

enabled required boolean false pro

Enabled signals this container should be enabled.

image required object pro

Image is the distro image

registry required string pro

Registry is the registry of the container image, e.g. my-registry.com or ghcr.io. This setting can be globally overridden via the controlPlane.advanced.defaultImageRegistry option. Empty means docker hub.

repository required string pro

Repository is the repository of the container image, e.g. my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

controllerManager required object pro

ControllerManager holds configuration specific to starting the controller manager.

enabled required boolean false pro

Enabled signals this container should be enabled.

image required object pro

Image is the distro image

registry required string pro

Registry is the registry of the container image, e.g. my-registry.com or ghcr.io. This setting can be globally overridden via the controlPlane.advanced.defaultImageRegistry option. Empty means docker hub.

repository required string pro

Repository is the repository of the container image, e.g. my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

scheduler required object pro

Scheduler holds configuration specific to starting the scheduler. Enable this via controlPlane.advanced.virtualScheduler.enabled

image required object pro

Image is the distro image

registry required string pro

Registry is the registry of the container image, e.g. my-registry.com or ghcr.io. This setting can be globally overridden via the controlPlane.advanced.defaultImageRegistry option. Empty means docker hub.

repository required string pro

Repository is the repository of the container image, e.g. my-repo/my-image

tag required string pro

Tag is the tag of the container image, e.g. latest

imagePullPolicy required string pro

ImagePullPolicy is the pull policy for the distro image

command required string[] pro

Command is the command to start the distro binary. This will override the existing command.

extraArgs required string[] pro

ExtraArgs are additional arguments to pass to the distro binary.

env required object[] pro

Env are extra environment variables to use for the main container and NOT the init container.

resources required object pro

Resources for the distro init container

securityContext required object pro

Security options can be used for the distro init container