Standalone
This feature is only available for the following:
Running the control plane as a binary for vCluster Standalone, which uses private nodes.vCluster Standalone is a different architecture model for vCluster for the control plane and node as there is no requirement of a host cluster. vCluster is deployed directly onto nodes like other Kubernetes distribution. vCluster Standalone can run on any type of node, whether that is a bare-metal node or VM. It provides the strictest isolation for workloads as there is no shared host cluster for the control plane or worker nodes.
When enabling vCluster Standalone, the control plane is now no longer on a shared host cluster, but on its own independent node. Worker nodes must be private nodes.

Installation Overview​
vCluster Standalone requires having dedicated nodes to build your control plane nodes and optionally add additional worker nodes.
The steps are to bring up a vCluster Standalone cluster are:
- Install an initial control plane node.
- (Optional) Join additional control plane nodes.
- (Optional) Join worker nodes.
Node Roles​
By default, the node only acts as a control plane node, but can be enabled to run as a worker node as well.
controlPlane:
standalone:
enabled: true
joinNode:
enabled: true # Control Plane node will also be considered a worker node
privateNodes: # Required when adding additional worker nodes
enabled: true
Config Reference​
standalone
required object ​
Standalone holds configuration for standalone mode. Standalone mode is set automatically when no container is detected and
also implies privateNodes.enabled.
standalone
required object ​enabled
required boolean ​
Enabled defines if standalone mode should be enabled.
enabled
required boolean ​dataDir
required string /var/lib/vcluster ​
DataDir defines the data directory for the standalone mode.
dataDir
required string /var/lib/vcluster ​autoNodes
required object ​
AutoNodes automatically deploys nodes for standalone mode.
autoNodes
required object ​provider
required string ​
Provider is the node provider of the nodes in this pool.
provider
required string ​quantity
required integer ​
Quantity is the number of nodes to deploy for standalone mode.
quantity
required integer ​requirements
required object[] ​
Requirements filter the types of nodes that can be provisioned by this pool.
All requirements must be met for a node type to be eligible.
requirements
required object[] ​property
required string ​
Property is the property on the node type to select.
property
required string ​operator
required string ​
Operator is the comparison operator, such as "In", "NotIn", "Exists". If empty, defaults to "In".
operator
required string ​values
required string[] ​
Values is the list of values to use for comparison. This is mutually exclusive with value.
values
required string[] ​value
required string ​
Value is the value to use for comparison. This is mutually exclusive with values.
value
required string ​joinNode
required object ​
JoinNode holds configuration for the standalone control plane node.
joinNode
required object ​enabled
required boolean true ​
Enabled defines if the standalone node should be joined into the cluster. If false, only the control plane binaries will be executed and no node will show up in the actual cluster.
enabled
required boolean true ​preInstallCommands
required string[] ​
PreInstallCommands are commands that will be executed before containerd, kubelet etc. is installed.
preInstallCommands
required string[] ​preJoinCommands
required string[] ​
PreJoinCommands are commands that will be executed before kubeadm join is executed.
preJoinCommands
required string[] ​postJoinCommands
required string[] ​
PostJoinCommands are commands that will be executed after kubeadm join is executed.
postJoinCommands
required string[] ​containerd
required object ​
Containerd holds configuration for the containerd join process.
containerd
required object ​enabled
required boolean true ​
Enabled defines if containerd should be installed and configured by vCluster.
enabled
required boolean true ​registry
required object ​
Registry holds configuration for how containerd should be configured to use a registries.
registry
required object ​configPath
required string ​
ConfigPath is the path to the containerd registry config.
configPath
required string ​mirrors
required {key: object} ​
Mirrors holds configuration for the containerd registry mirrors. E.g. myregistry.io:5000 or docker.io. See https://github.com/containerd/containerd/blob/main/docs/hosts.md for more details.
mirrors
required {key: object} ​server
required string ​
Server is the fallback server to use for the containerd registry mirror. E.g. https://registry-1.docker.io. See https://github.com/containerd/containerd/blob/main/docs/hosts.md for more details.
server
required string ​caCert
required string[] ​
CACert are paths to CA certificates to use for the containerd registry mirror.
caCert
required string[] ​skipVerify
required boolean ​
SkipVerify is a boolean to skip the certificate verification for the containerd registry mirror and allows http connections.
skipVerify
required boolean ​capabilities
required string[] ​
Capabilities is a list of capabilities to enable for the containerd registry mirror. If empty, will use pull and resolve capabilities.
capabilities
required string[] ​overridePath
required boolean ​
OverridePath is a boolean to override the path for the containerd registry mirror.
overridePath
required boolean ​hosts
required object[] ​
Hosts holds configuration for the containerd registry mirror hosts. See https://github.com/containerd/containerd/blob/main/docs/hosts.md for more details.
hosts
required object[] ​server
required string ​
Server is the server to use for the containerd registry mirror host. E.g. http://192.168.31.250:5000.
server
required string ​caCert
required string[] ​
CACert are paths to CA certificates to use for the containerd registry mirror host.
caCert
required string[] ​skipVerify
required boolean ​
SkipVerify is a boolean to skip the certificate verification for the containerd registry mirror and allows http connections.
skipVerify
required boolean ​capabilities
required string[] ​
Capabilities is a list of capabilities to enable for the containerd registry mirror. If empty, will use pull and resolve capabilities.
capabilities
required string[] ​overridePath
required boolean ​
OverridePath is a boolean to override the path for the containerd registry mirror.
overridePath
required boolean ​auth
required {key: object} ​
Auth holds configuration for the containerd registry auth. See https://github.com/containerd/containerd/blob/main/docs/cri/registry.md#configure-registry-credentials for more details.
auth
required {key: object} ​username
required string ​
Username is the username for the containerd registry.
username
required string ​password
required string ​
Password is the password for the containerd registry.
password
required string ​identityToken
required string ​
IdentityToken is the token for the containerd registry.
identityToken
required string ​auth
required string ​
Auth is the auth config for the containerd registry.
auth
required string ​pauseImage
required string ​
PauseImage is the image for the pause container.
pauseImage
required string ​caCertPath
required string ​
CACertPath is the path to the SSL certificate authority used to
secure communications between node and control-plane.
Defaults to "/etc/kubernetes/pki/ca.crt".
caCertPath
required string ​skipPhases
required string[] ​
SkipPhases is a list of phases to skip during command execution.
The list of phases can be obtained with the "kubeadm join --help" command.
skipPhases
required string[] ​nodeRegistration
required object ​
NodeRegistration holds configuration for the node registration similar to the kubeadm node registration.
nodeRegistration
required object ​criSocket
required string ​
CRI socket is the socket for the CRI.
criSocket
required string ​kubeletExtraArgs
required object[] ​
KubeletExtraArgs passes through extra arguments to the kubelet. The arguments here are passed to the kubelet command line via the environment file
kubeadm writes at runtime for the kubelet to source. This overrides the generic base-level configuration in the kubelet-config ConfigMap
Flags have higher priority when parsing. These values are local and specific to the node kubeadm is executing on.
An argument name in this list is the flag name as it appears on the command line except without leading dash(es).
Extra arguments will override existing default arguments. Duplicate extra arguments are allowed.
kubeletExtraArgs
required object[] ​taints
required object[] ​
Taints are additional taints to set for the kubelet.
taints
required object[] ​key
required string ​
Required. The taint key to be applied to a node.
key
required string ​value
required string ​
The taint value corresponding to the taint key.
value
required string ​effect
required string ​
Required. The effect of the taint on pods
that do not tolerate the taint.
Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
effect
required string ​ignorePreflightErrors
required string[] ​
IgnorePreflightErrors provides a slice of pre-flight errors to be ignored when the current node is registered, e.g. 'IsPrivilegedUser,Swap'.
Value 'all' ignores errors from all checks.
ignorePreflightErrors
required string[] ​imagePullPolicy
required string ​
ImagePullPolicy specifies the policy for image pulling during kubeadm "init" and "join" operations.
The value of this field must be one of "Always", "IfNotPresent" or "Never".
If this field is unset kubeadm will default it to "IfNotPresent", or pull the required images if not present on the host.
imagePullPolicy
required string ​