Skip to content

Commit 62a1474

Browse files
Denisedeniseschannon
authored andcommitted
Changes for standalone
1 parent c521573 commit 62a1474

File tree

38 files changed

+1263
-225
lines changed

38 files changed

+1263
-225
lines changed
45 KB
Loading
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
## Available flags to use in the install script
2+
3+
There are several flags available that can be added to the script.
4+
5+
| Flag | Description |
6+
|------|-------------|
7+
| `--vcluster-name` | Name of the vCluster instance |
8+
| `--vcluster-version` | Specific vCluster version to install |
9+
| `--config` | Path to the vcluster.yaml configuration file |
10+
| `--skip-download` | Skip downloading vCluster binary (use existing) |
11+
| `--skip-wait` | Exit without waiting for vCluster to be ready |
12+
| `--extra-env` | Additional environment variables for vCluster |
13+
| `--platform-access-key` | Access key for vCluster Platform integration |
14+
| `--platform-host` | vCluster Platform host URL |
15+
| `--platform-insecure` | Skip TLS verification for Platform connection |
16+
| `--platform-instance-name` | Instance name in vCluster Platform |
17+
| `--platform-project` | Project name in vCluster Platform |

vcluster/_fragments/integrations/istio.mdx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -213,14 +213,14 @@ You can find your contexts by running `kubectl config get-contexts`
213213
namespace: test
214214
data:
215215
index.html: |
216-
<!DOCTYPE html>
217-
<html>
218-
<head>
219-
<title>Welcome to nginx v2!</title>
220-
</head>
221-
<body>
222-
<h1>Hello from Nginx Version 2!</h1>
223-
</body>
216+
<!DOCTYPE html>
217+
<html>
218+
<head>
219+
<title>Welcome to nginx v2!</title>
220+
</head>
221+
<body>
222+
<h1>Hello from Nginx Version 2!</h1>
223+
</body>
224224
</html>
225225
```
226226

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
### Other vCluster feature limitations
2+
3+
Certain vCluster features are automatically disabled or unavailable. If you include these options in your `vcluster.yaml`, they are ignored or might cause configuration errors.
4+
5+
The following features are not available:
6+
7+
- `sync.*` - No resource syncing between virtual and host clusters
8+
- `integrations.*` - Integrations depend on syncing functionality
9+
- `networking.replicateServices` - Services are not replicated to host
10+
- `controlPlane.distro.k3s` - Only standard Kubernetes (k8s) is supported
11+
- `controlPlane.coredns.embedded: true` - Embedded CoreDNS conflicts with custom CNI
12+
- `controlPlane.advanced.virtualScheduler.enabled: false` - Virtual scheduler cannot be disabled
13+
- `sleepMode.*` - No ability to sleep workloads or control plane
14+
15+
16+
```yaml title="Unsupported vcluster.yaml options with private nodes"
17+
# These configurations are NOT supported with private nodes
18+
19+
# Resource syncing between virtual and host clusters is disabled
20+
sync:
21+
services:
22+
enabled: false # Services cannot be synced to host cluster
23+
secrets:
24+
enabled: false # Secrets cannot be synced to host cluster
25+
# All other sync options (pods, configmaps, etc.) are also disabled
26+
27+
# Platform integrations require syncing functionality
28+
integrations:
29+
metricsServer:
30+
enabled: false # Metrics server integration not supported
31+
# All other integrations are disabled due to sync dependency
32+
33+
# Service replication to host cluster is not available
34+
networking:
35+
replicateServices:
36+
enabled: false # Services run entirely within virtual cluster
37+
38+
# Distribution restrictions
39+
controlPlane:
40+
distro:
41+
k3s:
42+
enabled: false # k3s distribution not supported
43+
k8s:
44+
enabled: true # Only standard Kubernetes works
45+
46+
# DNS configuration limitations
47+
coredns:
48+
embedded: false # Embedded CoreDNS conflicts with custom CNI options
49+
advanced:
50+
# Virtual scheduler is required for workload placement
51+
virtualScheduler:
52+
enabled: true # Always enabled (cannot be disabled)
53+
# Host Path Mapper is not supported
54+
hostPathMapper:
55+
enabled: false
56+
57+
# Sleep mode is not available
58+
sleepMode:
59+
enabled: false
Lines changed: 3 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import PrivateNodeLimitations from './private-nodes-limitations.mdx'
2+
13
Using private nodes is a tenancy model for vCluster where, instead of sharing the host cluster’s worker nodes, individual worker nodes are joined to a vCluster.
24
These private nodes act as the vCluster’s worker nodes and are treated as worker nodes for the vCluster.
35

@@ -72,71 +74,5 @@ controlPlane:
7274
virtualScheduler:
7375
enabled: true
7476
```
75-
### Other vCluster feature limitations
76-
77-
When private nodes are enabled, certain vCluster features are automatically disabled or unavailable. If you include these options in your `vcluster.yaml`, they are ignored or might cause configuration errors.
78-
79-
The following features are not available when using private nodes:
80-
81-
- `sync.*` - No resource syncing between virtual and host clusters
82-
- `integrations.*` - Integrations depend on syncing functionality
83-
- `networking.replicateServices` - Services are not replicated to host
84-
- `controlPlane.distro.k3s` - Only standard Kubernetes (k8s) is supported
85-
- `controlPlane.coredns.embedded: true` - Embedded CoreDNS conflicts with custom CNI
86-
- `controlPlane.advanced.virtualScheduler.enabled: false` - Virtual scheduler cannot be disabled
87-
- `sleepMode.*` - No ability to sleep workloads or control plane
88-
89-
90-
```yaml title="Unsupported vcluster.yaml options with private nodes"
91-
# These configurations are NOT supported with private nodes
92-
93-
# Resource syncing between virtual and host clusters is disabled
94-
sync:
95-
services:
96-
enabled: false # Services cannot be synced to host cluster
97-
secrets:
98-
enabled: false # Secrets cannot be synced to host cluster
99-
# All other sync options (pods, configmaps, etc.) are also disabled
100-
101-
# Platform integrations require syncing functionality
102-
integrations:
103-
metricsServer:
104-
enabled: false # Metrics server integration not supported
105-
# All other integrations are disabled due to sync dependency
106-
107-
# Service replication to host cluster is not available
108-
networking:
109-
replicateServices:
110-
enabled: false # Services run entirely within virtual cluster
111-
112-
# Distribution restrictions
113-
controlPlane:
114-
distro:
115-
k3s:
116-
enabled: false # k3s distribution not supported
117-
k8s:
118-
enabled: true # Only standard Kubernetes works
119-
120-
# DNS configuration limitations
121-
coredns:
122-
embedded: false # Embedded CoreDNS conflicts with custom CNI options
123-
advanced:
124-
# Virtual scheduler is required for workload placement
125-
virtualScheduler:
126-
enabled: true # Always enabled (cannot be disabled)
127-
# Host Path Mapper is not supported
128-
hostPathMapper:
129-
enabled: false
130-
131-
# Sleep mode is not available
132-
sleepMode:
133-
enabled: false
134-
135-
# Isolated Control Plane mode is not supported
136-
experimental:
137-
isolatedControlPlane:
138-
enabled: false
139-
```
140-
141-
14277

78+
<PrivateNodeLimitations />

vcluster/_fragments/standalone.mdx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
vCluster Standalone is a different architecture model for vCluster for the control plane and node as there is no requirement
3+
of a host cluster. vCluster is deployed directly onto nodes like other Kubernetes distribution. vCluster Standalone can
4+
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.
5+
6+
When enabling vCluster Standalone, the control plane is now no longer on a shared host cluster, but on its own independent node. Worker
7+
nodes must be private nodes.
8+
9+
<br />
10+
11+
<center>
12+
<img
13+
src="/docs/media/private-nodes/architecture.png"
14+
width='500'
15+
alt="vCluster Standalone Architecture"
16+
/>
17+
</center>
18+
19+
## Installation Overview
20+
21+
vCluster Standalone requires having dedicated nodes to build your control plane nodes and optionally add additional worker nodes.
22+
23+
The steps are to bring up a vCluster Standalone cluster are:
24+
25+
1. Install an initial control plane node.
26+
2. (Optional) Join additional control plane nodes.
27+
3. (Optional) Join worker nodes.
Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
:::info Limited vCluster Tenancy Configuration Support
2-
This feature is only available when using the following worker node types:
3-
2+
This feature is only available for the following:
3+
{(props.hostNodes || props.privateNodes) && (<>
4+
Running the control plane as a container and the following worker node types:
5+
</>)}
46
{props.hostNodes && (<>
57
<li><b>Host Nodes</b></li>
68
</>)}
79
{props.privateNodes && (<>
810
<li><b>Private Nodes</b></li>
911
</>)}
10-
:::
12+
{props.standalone && (<>
13+
Running the control plane as a binary for <b>vCluster Standalone</b>, which uses <b>private nodes</b>.
14+
</>)}
15+
16+
17+
:::
Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import KubernetesVersions from './kubernetes-versions.mdx'
22
import { HostClusterCompat } from './host-cluster-compat.mdx'
33

4-
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.
4+
vCluster is deployed with its own Kubernetes distribution that does not need to match with the host cluster's distribution. For example,
5+
you can deploy virtual clusters with the K8s distro on top of EKS clusters.
56

67

78
:::warning
@@ -10,20 +11,13 @@ After deploying your vCluster, changing the Kubernetes distribution of vCluster
1011

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

13-
:::warning Deprecation notice
14-
Support for **K0s** and **K3s** is deprecated in vCluster `v0.25`. **K0s** support is removed in `v0.26`.
15-
Migration to a supported Kubernetes distribution is recommended.
16-
:::
17-
1814
The following distributions are supported for virtual clusters:
1915

2016
- **K8s**: By default, vCluster uses vanilla Kubernetes. This is the recommended distribution.
21-
- [**K3s**](https://github.com/k3s-io/k3s): A lightweight, certified Kubernetes distribution designed for resource-constrained environments, remote locations, and IoT devices.
22-
- [**K0s**](https://github.com/k0sproject/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.
17+
- [**K3s**](https://github.com/k3s-io/k3s): A lightweight, certified Kubernetes distribution designed for resource-constrained environments, remote locations, and IoT devices. K3s is only supported for control plane as a container and worker nodes as host nodes.
2318

2419
<HostClusterCompat distro="any supported Kubernetes distribution"/>
2520

26-
2721
### Host cluster compatibility
2822

29-
vCluster supports specific Kubernetes versions on host clusters. For more information, see the [Kubernetes compatibility matrix](../../deploy/upgrade/supported_versions.mdx#kubernetes-compatibility-matrix).
23+
vCluster supports specific Kubernetes versions on host clusters. For more information, see the [Kubernetes compatibility matrix](../../deploy/upgrade/supported_versions.mdx#kubernetes-compatibility-matrix).
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import Flow, { Step } from "@site/src/components/Flow";
2+
3+
Changing the `vcluster.yaml` configuration has to be done on all control plane nodes.
4+
5+
<Flow>
6+
<Step>
7+
Modify the `vcluster.yaml`.
8+
9+
The `vcluster.yaml` is located at: `/etc/vcluster/vcluster.yaml`. Edit and save your changes.
10+
</Step>
11+
<Step>
12+
Restart vCluster systemD service to deploy your changes.
13+
14+
```bash title="Restart vCluster"
15+
systemctl restart vcluster.service
16+
```
17+
18+
</Step>
19+
</Flow>

vcluster/configure/tenancy-model.mdx

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,31 @@ sidebar_class_name: host-nodes private-nodes standalone
88

99
vCluster supports multiple tenancy models and configuring the tenancy models starts how you select the worker node pool.
1010

11+
:::warning
12+
Deciding how to deploy your control plane and worker nodes
13+
must be determined upon vCluster creation. There is no migration/upgrade between the different models.
14+
:::
15+
16+
## Shared host nodes vs. private nodes vs. standalone
17+
18+
Understanding the different deployment models helps you choose the right approach for your use case:
19+
20+
- **Shared Host Nodes**: vCluster control plane and worker nodes run on a host Kubernetes cluster, sharing infrastructure with other virtual clusters.
21+
- **Private Nodes**: vCluster control runs on a host Kubernetes cluster, but worker nodes are on individual nodes.
22+
- **Standalone**: Complete independence with no host cluster - both control plane and worker nodes run on dedicated infrastructure.
23+
24+
## Control plane
25+
26+
The first decision that needs to be made is what infrastructure is used for the vCluster's control plane. The control plane can be deployed as a:
27+
28+
* **Container** - (Default) The control plane is deployed as containers on a host cluster.
29+
* **[Binary](./vcluster-yaml/control-plane/components/standalone)** - The control plane is deployed as a binary on indivudal nodes.
30+
1131
## Worker node pool
1232

13-
You decide what infrastructure is used for the vCluster's worker node pool.
33+
When the control plane is deployed as a container, you can decide what infrastructure is used for the vCluster's worker node pool.
1434

15-
:::warning
16-
Deciding which type of nodes you want to use for your vCluster
17-
must be determined upon vCluster creation. There is no migration/upgrade between the different worker node pool types.
18-
:::
35+
When the control plane is deployed as a binary, the worker nodes can only be [private nodes](#private-nodes).
1936

2037
### Host nodes
2138

0 commit comments

Comments
 (0)