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.
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.
distro
required object prok8s
required object pro
K8S holds K8s relevant configuration.
k8s
required object proenabled
required boolean false pro
Enabled specifies if the K8s distro should be enabled. Only one distro can be enabled at the same time.
enabled
required boolean false proapiServer
required object pro
APIServer holds configuration specific to starting the api server.
apiServer
required object proenabled
required boolean false pro
Enabled signals this container should be enabled.
enabled
required boolean false proimage
required object pro
Image is the distro image
image
required object proregistry
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.
registry
required string prorepository
required string pro
Repository is the repository of the container image, e.g. my-repo/my-image
repository
required string protag
required string pro
Tag is the tag of the container image, e.g. latest
tag
required string proimagePullPolicy
required string pro
ImagePullPolicy is the pull policy for the distro image
imagePullPolicy
required string procommand
required string[] pro
Command is the command to start the distro binary. This will override the existing command.
command
required string[] proextraArgs
required string[] pro
ExtraArgs are additional arguments to pass to the distro binary.
extraArgs
required string[] procontrollerManager
required object pro
ControllerManager holds configuration specific to starting the controller manager.
controllerManager
required object proenabled
required boolean false pro
Enabled signals this container should be enabled.
enabled
required boolean false proimage
required object pro
Image is the distro image
image
required object proregistry
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.
registry
required string prorepository
required string pro
Repository is the repository of the container image, e.g. my-repo/my-image
repository
required string protag
required string pro
Tag is the tag of the container image, e.g. latest
tag
required string proimagePullPolicy
required string pro
ImagePullPolicy is the pull policy for the distro image
imagePullPolicy
required string procommand
required string[] pro
Command is the command to start the distro binary. This will override the existing command.
command
required string[] proextraArgs
required string[] pro
ExtraArgs are additional arguments to pass to the distro binary.
extraArgs
required string[] proscheduler
required object pro
Scheduler holds configuration specific to starting the scheduler. Enable this via controlPlane.advanced.virtualScheduler.enabled
scheduler
required object proimage
required object pro
Image is the distro image
image
required object proregistry
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.
registry
required string prorepository
required string pro
Repository is the repository of the container image, e.g. my-repo/my-image
repository
required string protag
required string pro
Tag is the tag of the container image, e.g. latest
tag
required string proimagePullPolicy
required string pro
ImagePullPolicy is the pull policy for the distro image
imagePullPolicy
required string procommand
required string[] pro
Command is the command to start the distro binary. This will override the existing command.
command
required string[] proextraArgs
required string[] pro
ExtraArgs are additional arguments to pass to the distro binary.
extraArgs
required string[] proenv
required object[] pro
Env are extra environment variables to use for the main container and NOT the init container.
env
required object[] proresources
required object pro
Resources for the distro init container
resources
required object prosecurityContext
required object pro
Security options can be used for the distro init container
securityContext
required object prok3s
required object pro
K3S holds K3s relevant configuration.
k3s
required object proenabled
required boolean false pro
Enabled specifies if the K3s distro should be enabled. Only one distro can be enabled at the same time.
enabled
required boolean false protoken
required string pro
Token is the K3s token to use. If empty, vCluster will choose one.
token
required string proenv
required object[] pro
Env are extra environment variables to use for the main container and NOT the init container.
env
required object[] proresources
required object pro
Resources for the distro init container
resources
required object prosecurityContext
required object pro
Security options can be used for the distro init container
securityContext
required object proimage
required object pro
Image is the distro image
image
required object proregistry
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.
registry
required string prorepository
required string pro
Repository is the repository of the container image, e.g. my-repo/my-image
repository
required string protag
required string pro
Tag is the tag of the container image, e.g. latest
tag
required string proimagePullPolicy
required string pro
ImagePullPolicy is the pull policy for the distro image
imagePullPolicy
required string procommand
required string[] pro
Command is the command to start the distro binary. This will override the existing command.
command
required string[] proextraArgs
required string[] pro
ExtraArgs are additional arguments to pass to the distro binary.
extraArgs
required string[] prok0s
required object pro
K0S holds k0s relevant configuration.
k0s
required object proenabled
required boolean false pro
Enabled specifies if the k0s distro should be enabled. Only one distro can be enabled at the same time.
enabled
required boolean false proconfig
required string pro
Config allows you to override the k0s config passed to the k0s binary.
config
required string proenv
required object[] pro
Env are extra environment variables to use for the main container and NOT the init container.
env
required object[] proresources
required object pro
Resources for the distro init container
resources
required object prosecurityContext
required object pro
Security options can be used for the distro init container
securityContext
required object proimage
required object pro
Image is the distro image
image
required object proregistry
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.
registry
required string prorepository
required string pro
Repository is the repository of the container image, e.g. my-repo/my-image
repository
required string protag
required string pro
Tag is the tag of the container image, e.g. latest
tag
required string proimagePullPolicy
required string pro
ImagePullPolicy is the pull policy for the distro image
imagePullPolicy
required string procommand
required string[] pro
Command is the command to start the distro binary. This will override the existing command.
command
required string[] proextraArgs
required string[] pro
ExtraArgs are additional arguments to pass to the distro binary.
extraArgs
required string[] proeks
required object pro
EKS holds eks relevant configuration.
eks
required object proenabled
required boolean false pro
Enabled specifies if the K8s distro should be enabled. Only one distro can be enabled at the same time.
enabled
required boolean false proapiServer
required object pro
APIServer holds configuration specific to starting the api server.
apiServer
required object proenabled
required boolean false pro
Enabled signals this container should be enabled.
enabled
required boolean false proimage
required object pro
Image is the distro image
image
required object proregistry
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.
registry
required string prorepository
required string pro
Repository is the repository of the container image, e.g. my-repo/my-image
repository
required string protag
required string pro
Tag is the tag of the container image, e.g. latest
tag
required string proimagePullPolicy
required string pro
ImagePullPolicy is the pull policy for the distro image
imagePullPolicy
required string procommand
required string[] pro
Command is the command to start the distro binary. This will override the existing command.
command
required string[] proextraArgs
required string[] pro
ExtraArgs are additional arguments to pass to the distro binary.
extraArgs
required string[] procontrollerManager
required object pro
ControllerManager holds configuration specific to starting the controller manager.
controllerManager
required object proenabled
required boolean false pro
Enabled signals this container should be enabled.
enabled
required boolean false proimage
required object pro
Image is the distro image
image
required object proregistry
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.
registry
required string prorepository
required string pro
Repository is the repository of the container image, e.g. my-repo/my-image
repository
required string protag
required string pro
Tag is the tag of the container image, e.g. latest
tag
required string proimagePullPolicy
required string pro
ImagePullPolicy is the pull policy for the distro image
imagePullPolicy
required string procommand
required string[] pro
Command is the command to start the distro binary. This will override the existing command.
command
required string[] proextraArgs
required string[] pro
ExtraArgs are additional arguments to pass to the distro binary.
extraArgs
required string[] proscheduler
required object pro
Scheduler holds configuration specific to starting the scheduler. Enable this via controlPlane.advanced.virtualScheduler.enabled
scheduler
required object proimage
required object pro
Image is the distro image
image
required object proregistry
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.
registry
required string prorepository
required string pro
Repository is the repository of the container image, e.g. my-repo/my-image
repository
required string protag
required string pro
Tag is the tag of the container image, e.g. latest
tag
required string proimagePullPolicy
required string pro
ImagePullPolicy is the pull policy for the distro image
imagePullPolicy
required string procommand
required string[] pro
Command is the command to start the distro binary. This will override the existing command.
command
required string[] proextraArgs
required string[] pro
ExtraArgs are additional arguments to pass to the distro binary.
extraArgs
required string[] proenv
required object[] pro
Env are extra environment variables to use for the main container and NOT the init container.
env
required object[] proresources
required object pro
Resources for the distro init container
resources
required object prosecurityContext
required object pro
Security options can be used for the distro init container
securityContext
required object pro