vCluster - Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.
APACHE-2.0 License
Bot releases are visible (Hide)
Published by FabianKramm almost 3 years ago
vcluster will now deploy coredns itself instead of depending on the k3s coredns deployment. This makes it possible to customize the coredns deployment (e.g. for rootless mode) and also support other kubernetes distributions besides k3s. However, this will break the current coredns deployment created by k3s.
This means that after you have upgraded vcluster from an v0.4.x
version, you need to delete the coredns deployment inside vcluster and then restart vcluster by deleting the vcluster pod to let it redeploy the correct coredns deployment:
# Delete coredns deployment inside vcluster
export KUBECONFIG=vcluster-kubeconfig.yaml
kubectl delete deployment coredns -n kube-system
# Restart vcluster by deleting its pod
export KUBECONFIG=host-kubeconfig.yaml
kubectl delete pod vcluster-pod-0 -n vcluster-namespace
vcluster now supports creating k0s and vanilla k8s virtual Kubernetes clusters instead of k3s. You can now specify the target virtual Kubernetes cluster distribution via the --distro
flag in vcluster create
. For vanilla k8s there is now also a high availability mode.
Examples:
# Create a virtual k3s Kubernetes cluster
vcluster create my-vcluster -n my-vcluster
# Create a virtual k0s Kubernetes cluster
vcluster create my-vcluster -n my-vcluster --distro k0s
# Create a virtual k8s Kubernetes cluster with kubernetes version v1.20
vcluster create my-vcluster -n my-vcluster --distro k8s --kubernetes-version v1.20
vcluster create
flags --release-values
and --k3s-image
. Use --extra-values
insteadvcluster create
flag --upgrade
from true
to false
. vcluster will not try to upgrade an existing vcluster by default anymore--kubernetes-version
for vcluster create
to override the kubernetes version used for creating the vcluster.--name
that specifies the vcluster name (replaces --suffix
)--suffix
, use --name
instead--service-name
now defaults to --name
if omitted--set-owner
now defaults to true
and vcluster does not fail if setting the owner is not possible--service-namespace
as this would break vcluster if it's not the same value as current vcluster namespace--target-namespace
was provided (#214)--leader-elect
that defaults to false to avoid unnecessary leader electionPublished by FabianKramm almost 3 years ago
vcluster now supports creating k0s and vanilla k8s virtual Kubernetes clusters instead of k3s. You can now specify the target virtual Kubernetes cluster distribution via the --distro
flag in vcluster create
. For vanilla k8s there is now also a high availability mode.
Examples:
# Create a virtual k3s Kubernetes cluster
vcluster create my-vcluster -n my-vcluster
# Create a virtual k0s Kubernetes cluster
vcluster create my-vcluster -n my-vcluster --distro k0s
# Create a virtual k8s Kubernetes cluster with kubernetes version v1.20
vcluster create my-vcluster -n my-vcluster --distro k8s --kubernetes-version v1.20
vcluster create
flags --release-values
and --k3s-image
. Use --extra-values
insteadvcluster create
flag --upgrade
from true
to false
. vcluster will not try to upgrade an existing vcluster by default anymore--kubernetes-version
for vcluster create
to override the kubernetes version used for creating the vcluster.--name
that specifies the vcluster name (replaces --suffix
)--suffix
, use --name
instead--service-name
now defaults to --name
if omitted--set-owner
now defaults to true
and vcluster does not fail if setting the owner is not possible--service-namespace
as this would break vcluster if it's not the same value as current vcluster namespace--target-namespace
was provided (#214)--leader-elect
that defaults to false to avoid unnecessary leader electionPublished by FabianKramm almost 3 years ago
vcluster now supports creating k0s and vanilla k8s virtual Kubernetes clusters instead of k3s. You can now specify the target virtual Kubernetes cluster distribution via the --distro
flag in vcluster create
. For vanilla k8s there is now also a high availability mode.
Examples:
# Create a virtual k3s Kubernetes cluster
vcluster create my-vcluster -n my-vcluster
# Create a virtual k0s Kubernetes cluster
vcluster create my-vcluster -n my-vcluster --distro k0s
# Create a virtual k8s Kubernetes cluster with kubernetes version v1.20
vcluster create my-vcluster -n my-vcluster --distro k8s --kubernetes-version v1.20
vcluster create
flags --release-values
and --k3s-image
. Use --extra-values
insteadvcluster create
flag --upgrade
from true
to false
. vcluster will not try to upgrade an existing vcluster by default anymore--kubernetes-version
for vcluster create
to override the kubernetes version used for creating the vcluster.--target-namespace
was provided (#214)--leader-elect
that defaults to false to avoid unnecessary leader electionPublished by FabianKramm almost 3 years ago
Published by FabianKramm almost 3 years ago
Published by FabianKramm almost 3 years ago
Published by FabianKramm almost 3 years ago
--fake-persistent-volumes=false
Published by FabianKramm almost 3 years ago
--fake-persistent-volumes=false
Published by FabianKramm almost 3 years ago
--set-owner
flag that will figure out automatically the owning object of the vcluster pod and set that to the vcluster created objects (#181)--owning-statefulset
cluster-autoscaler.kubernetes.io/safe-to-evict
for pods that are deployed with a deployment, replicaset or statefulset within the vcluster to signal autoscalers that it is safe to evict those pods.vcluster connect
and make the command work without requiring a statefulsetPublished by FabianKramm almost 3 years ago
--set-owner
flag that will figure out automatically the owning object of the vcluster pod and set that to the vcluster created objects (#181)--owning-statefulset
cluster-autoscaler.kubernetes.io/safe-to-evict
for pods that are deployed with a deployment, replicaset or statefulset within the vcluster to signal autoscalers that it is safe to evict those pods.vcluster connect
and make the command work without requiring a statefulsetPublished by FabianKramm almost 3 years ago
Published by FabianKramm almost 3 years ago
--output
flag in vcluster list
(thanks @jzbruno)helm version
in vcluster create
(thanks @developer-guy)vcluster.loft.sh/translate-pv
to vcluster.loft.sh/skip-translate
Published by FabianKramm almost 3 years ago
--output
flag in vcluster list
(thanks @jzbruno)helm version
in vcluster create
(thanks @developer-guy)vcluster.loft.sh/translate-pv
to vcluster.loft.sh/skip-translate
Published by FabianKramm about 3 years ago
--delete-namespace
to delete the vcluster namespace in vcluster delete
(#126).
with -
(#131)Published by FabianKramm about 3 years ago
--delete-namespace
to delete the vcluster namespace in vcluster delete
(#126).
with -
(#131)Published by FabianKramm about 3 years ago
vcluster now officially supports Kubernetes v1.22 as host cluster.
vcluster does now support creating custom persistent volumes within vcluster that will be synced to the host cluster. This allows you to manage persistent volumes directly within a vcluster. Please take a look at the vcluster docs for more information.
networking.k8s.io/v1
. The old version networking.k8s.io/v1beta1
is still available and used if no v1
is supported in the host cluster (pre Kubernetes v1.19) (#64)--address
flag for vcluster connect
to start portforwarding with a specific address locally--upgrade
flag for vcluster create
to disable automatic upgrading of a vcluster if it already existsPublished by FabianKramm about 3 years ago
vcluster now officially supports Kubernetes v1.22 as host cluster.
vcluster does now support creating custom persistent volumes within vcluster that will be synced to the host cluster. This allows you to manage persistent volumes directly within a vcluster. Please take a look at the vcluster docs for more information.
networking.k8s.io/v1
. The old version networking.k8s.io/v1beta1
is still available and used if no v1
is supported in the host cluster (pre Kubernetes v1.19) (#64)--address
flag for vcluster connect
to start portforwarding with a specific address locally--upgrade
flag for vcluster create
to disable automatic upgrading of a vcluster if it already existsPublished by FabianKramm about 3 years ago
vcluster now officially supports Kubernetes v1.22 as host cluster. However, since k3s does not support it yet, you can only start vcluster on a host cluster with version v1.22, but not actually start vcluster with version v1.22 yet (we'll add that as soon as k3s gets released for v1.22).
vcluster does now support creating custom persistent volumes within vcluster that will be synced to the host cluster. This allows you to manage persistent volumes directly within a vcluster. Please take a look at the vcluster docs for more information.
networking.k8s.io/v1
. The old version networking.k8s.io/v1beta1
is still available and used if no v1
is supported in the host cluster (pre Kubernetes v1.19) (#64)--address
flag for vcluster connect
to start portforwarding with a specific address locallyPublished by FabianKramm about 3 years ago
Published by FabianKramm about 3 years ago
vcluster completion
command to create bash & zsh completion scripts (#90) (thanks @mevech)