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 over 2 years ago
vcluster is now able to deploy helm charts defined in the chart values inside the virtual cluster on startup. For more information, please take a look at the vcluster docs
Published by FabianKramm over 2 years ago
Published by FabianKramm over 2 years ago
Published by FabianKramm over 2 years ago
Published by FabianKramm over 2 years ago
Published by FabianKramm over 2 years ago
vcluster create
now automatically does a connect by default. Can be disabled via vcluster create --connect=false
vcluster connect
now by default switches the current kube context to the vcluster context. Can be disabled via vcluster connect --update-current=false
vcluster delete
now by default deletes the namespace of the vcluster if it was created by vcluster before. Can be disabled via vcluster delete --auto-delete-namespace=false
In this release we mainly focused on improving the CLI experience for vcluster. On most local kubernetes distributions (minikube, docker-desktop, k3d, kind) you are now able to start vcluster without port-forwarding which makes it a lot easier to get started and use vcluster for local k8s development. It's also great news if you consider using vcluster in your CI/CD pipelines as you can now use KIND and vcluster together without having to run vcluster connect
in the background anymore.
So the current vcluster create && vcluster connect
flow in a separate terminal simplifies to:
# Start and connect a new vcluster in a single command for local Kubernetes distros
vcluster create my-vcluster
# Then immediately access the vcluster with regular kubectl commands
kubectl get ns
# Disconnect or delete the vcluster when you are done to switch back
# to the host context
vcluster disconnect
--kube-config-context-name
for vcluster connect
vcluster connect
with port-forwarding will now switch back the context on CTRL+CPublished by FabianKramm over 2 years ago
vcluster create
now automatically does a connect by default. Can be disabled via vcluster create --connect=false
vcluster connect
now by default switches the current kube context to the vcluster context. Can be disabled via vcluster connect --update-current=false
vcluster delete
now by default deletes the namespace of the vcluster if it was created by vcluster before. Can be disabled via vcluster delete --auto-delete-namespace=false
In this release we focused on improving the CLI experience for vcluster. On most local kubernetes distributions (minikube, docker-desktop, k3d, kind) you are now able to start vcluster without port-forwarding which makes it a lot easier to get started and use vcluster for local k8s development. It's also great news if you consider using vcluster in your CI/CD pipelines as you can now use KIND and vcluster together without having to run vcluster connect
in the background anymore.
So the current vcluster create && vcluster connect
flow in a separate terminal simplifies to:
# Start and connect a new vcluster in a single command for local Kubernetes distros
vcluster create my-vcluster
# Then immediately access the vcluster with regular kubectl commands
kubectl get ns
# Disconnect or delete the vcluster when you are done to switch back
# to the host context
vcluster disconnect
--kube-config-context-name
for vcluster connect
Published by FabianKramm over 2 years ago
vcluster create
now automatically does a connect by default. Can be disabled via vcluster create --connect=false
vcluster connect
now by default switches the current kube context to the vcluster context. Can be disabled via vcluster connect --update-current=false
vcluster delete
now by default deletes the namespace of the vcluster if it was created by vcluster before. Can be disabled via vcluster delete --auto-delete-namespace=false
In this release we focused on improving the CLI experience for vcluster. On most local kubernetes distributions (minikube, docker-desktop, k3d, kind) you are now able to start vcluster without port-forwarding which makes it a lot easier to get started and use vcluster for local k8s development. It's also great news if you consider using vcluster in your CI/CD pipelines as you can now use KIND and vcluster together without having to run vcluster connect
in the background anymore.
So the current vcluster create && vcluster connect
flow in a separate terminal simplifies to:
# Start and connect a new vcluster in a single command for local Kubernetes distros
vcluster create my-vcluster
# Then immediately access the vcluster with regular kubectl commands
kubectl get ns
# Disconnect or delete the vcluster when you are done to switch back
# to the host context
vcluster disconnect
--kube-config-context-name
for vcluster connect
Published by FabianKramm over 2 years ago
kube-config-context-name
for vcluster connect
to specify a custom kube context namePublished by FabianKramm over 2 years ago
Published by FabianKramm over 2 years ago
Published by FabianKramm over 2 years ago
Plugins are now able to intercept and mutate incoming and outgoing objects from the syncer. This makes it possible to adjust syncer behaviour without the need to replace the complete syncer. Furthermore you can now label objects with vcluster.loft.sh/controlled-by
to signal vcluster it should not reconcile this object and another party is responsible for handling it.
Published by FabianKramm over 2 years ago
Plugins are now able to intercept and mutate incoming and outgoing objects from the syncer. This makes it possible to adjust syncer behaviour without the need to replace the complete syncer. Furthermore you can now label objects with vcluster.loft.sh/controlled-by
to signal vcluster it should not reconcile this object and another party is responsible for handling it.
Published by FabianKramm over 2 years ago
Plugins are now able to intercept and mutate incoming and outgoing objects from the syncer. This makes it possible to adjust syncer behaviour without the need to replace the complete syncer. Furthermore you can now label objects with vcluster.loft.sh/controlled-by
to signal vcluster it should not reconcile this object and another party is responsible for handling it.
Published by FabianKramm over 2 years ago
Plugins are now able to intercept and mutate incoming and outgoing objects from the syncer. This makes it possible to adjust syncer behaviour without the need to replace the complete syncer. Furthermore you can now label objects with vcluster.loft.sh/controlled-by
to signal vcluster it should not reconcile this object and another party is responsible for handling it.
Published by FabianKramm over 2 years ago
Plugins are now able to intercept and mutate incoming and outgoing objects from the syncer. This makes it possible to adjust syncer behaviour without the need to replace the complete syncer. Furthermore you can now label objects with vcluster.loft.sh/controlled-by
to signal vcluster it should not reconcile this object and another party is responsible for handling it.
Published by FabianKramm over 2 years ago
Published by FabianKramm over 2 years ago
Published by FabianKramm over 2 years ago
Published by FabianKramm over 2 years ago
vcluster now supports mapping services between host and virtual cluster. You can specify which services from the host cluster should be available inside the vcluster and which services inside the vcluster should be synced with the host cluster. You can configure this in the helm chart via the new section mapServices
:
mapServices:
# Services that should get mapped from the
# virtual cluster to the host cluster.
# vcluster will make sure to sync the service
# ip to the host cluster automatically as soon
# as the service exists.
fromVirtual:
- from: my-virtual-namespace/my-virtual-service
to: my-host-service
# Same as from virtual, but instead sync services
# from the host cluster into the virtual cluster.
# If the namespace does not exist, vcluster will
# also create the namespace for the service.
fromHost:
- from: my-host-namespace/my-host-service
to: my-virtual-namespace/my-virtual-service
For more information, please take a look at the vcluster docs
vcluster now supports creation with manifests that will be applied as soon as the vcluster has started. This can be useful to configure and deploy virtual cluster with certain resources that are then deployed into vcluster itself. You can configure these manifests inside the helm values:
init:
manifests: |-
apiVersion: v1
kind: Service
...
---
apiVersion: v1
kind: ConfigMap
...
vcluster now supports running a scheduler inside the virtual cluster. This is especially useful if you need to label and taint nodes within the vcluster and do not want to label or taint the actual host nodes. The scheduler can be enabled via:
sync:
nodes:
enabled: true
syncAllNodes: true # or use nodeSelector
enableScheduler: true
This will tell vcluster to now start the scheduler inside vcluster and will only sync pods that have a node assigned. For more information, please take a look at the vcluster docs.
vcluster version
commandcluster-autoscaler.kubernetes.io/daemonset-pod
on pods that belong to a daemon set inside the virtual clusterdefault/kubernetes
Endpoints object was referencing incorrect IPs in k8s and eks flavors.isolation.namespace