vcluster

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

Stars
5.4K
Committers
139

Bot releases are hidden (Show)

vcluster - v0.3.3-beta.0

Published by FabianKramm about 3 years ago

Changes

  • cli: New vcluster completion command to create bash & zsh completion scripts (#90) (thanks @mevech)
  • chart: set default requests & limits (#62)
vcluster - v0.3.2

Published by FabianKramm over 3 years ago

Changes

  • cli: Fixed an issue where vcluster connect --server would sometimes not correctly prepend https://
  • cli: New --connect flag for vcluster create that directly runs vcluster connect after creating the vcluster (#81)
  • syncer: New flag --service-namespace to specify where the vcluster service is available
  • syncer: Fixed several issues where using --target-namespace would not work correctly
  • syncer: New --out-kube-config-secret-namespace flag to override the namespace where vcluster will store the generated kube config (#82)
  • syncer: New --out-kube-config-server flag to override the server of the generated kube config (#84)
  • syncer: Set owner reference to generated kube config secret if it is in the same namespace as owning statefulset (#83)
vcluster - v0.3.2-beta.0

Published by FabianKramm over 3 years ago

Changes

  • cli: New --connect flag for vcluster create that directly runs vcluster connect after creating the vcluster (#81)
  • syncer: New flag --service-namespace to specify where the vcluster service is available
  • syncer: Fixed several issues where using --target-namespace would not work correctly
  • syncer: New --out-kube-config-secret-namespace flag to override the namespace where vcluster will store the generated kube config (#82)
  • syncer: New --out-kube-config-server flag to override the server of the generated kube config (#84)
  • syncer: Set owner reference to generated kube config secret if it is in the same namespace as owning statefulset (#83)
vcluster - v0.3.1

Published by FabianKramm over 3 years ago

🚀🚀 100% API Conformance for Kubernetes v1.21 🚀🚀

vCluster now passes all conformance tests for Kubernetes v1.21 (prior vcluster only passed all v1.20 & v1.19 tests). See conformance on how to reproduce the test results.

Changes

  • syncer: vcluster will now strip the control-plane.alpha.kubernetes.io/leader annotation of endpoints to force mirroring endpoints to endpointslices in the host cluster
  • syncer: vcluster now issues custom service account tokens for projected service account token volumes, with correct audience fields.
  • chart: Remove * verbs in role to allow vcluster creation with admin role
  • cli: New --expose flag for vcluster create to use a LoadBalancer service to automatically expose the vcluster
  • cli: Improve vcluster connect to automatically recognize exposed vclusters and skip port forwarding for those
  • cli: Updated default k3s versions for vcluster create
vcluster - v0.3.1-beta.3

Published by FabianKramm over 3 years ago

vcluster - v0.3.1-beta.2

Published by FabianKramm over 3 years ago

vcluster - v0.3.1-beta.1

Published by FabianKramm over 3 years ago

vcluster - v0.3.1-beta.0

Published by FabianKramm over 3 years ago

vcluster - v0.3.1-alpha.0

Published by FabianKramm over 3 years ago

vcluster - v0.3.0

Published by FabianKramm over 3 years ago

🚀🚀 100% API Conformance 🚀🚀

This is a big milestone for vcluster as vcluster now passes 100% of Kubernetes conformance tests for Kubernetes version v1.20. Check conformance on how to reproduce the test result.

Support for etcd, mysql & postgresql datastorage

vcluster now officially supports data storage backends such as etcd, mysql & postgresql instead of the default sqlite storage. Take a look at the vcluster docs for more information.

Support for metrics-server, kube-prometheus-stack & HorizontalPodAutoscaler

By default, vcluster will now create a service for each node which redirects incoming traffic to the node kubelet from within the vcluster to vcluster itself. This means that if workloads within the vcluster try to scrape node metrics the traffic reaches vcluster first. Vcluster will redirect the incoming request to the host cluster and rewrite the response (pod names, pod namespaces etc) and return it to the requester.

This makes it possible to use Kubernetes features such as metrics-server, prometheus operator or HorizontalPodAutoscaler within the vcluster. However for this to work, you'll need to give vcluster RBAC permissions to access the nodes of the host cluster, which can be done via vcluster create ... --create-cluster-role

Support for DownwardAPI metadata.labels, Pod (Anti) Affinity & Pod Topology Constraints

vcluster will now sync labels of resources. In order to avoid conflicts in the host namespace, vcluster will rewrite them to be uniquely identifiable in the host cluster.

This makes it possible to use features like downwardAPI fields like metadata.labels['my-label'], pod (anti) affinity and pod topology constraints in the vcluster.

Other Changes

  • cli: vcluster create now uses the cli version as default vcluster chart version
  • cli: vcluster delete now deletes the PVC as well except --keep-pvc is specified (#29)
  • cli: Added --context flag for vcluster commands to specify a kubernetes context (#38)
  • cli: New --create-cluster-role flag for vcluster create to tell vcluster to create a cluster role
  • cli: New --k3s-image flag for vcluster create to specify the k3s image version
  • cli: New --server flag in vcluster connect to create kube configs for vclusters that use a NodePort, LoadBalancer or Ingress
  • cli: New --extra-values/-f flag in vcluster create to allow specification of additional value files that will be merged with the default ones
  • cli: Fixed an issue where vcluster connect --update-current would not work correctly
  • syncer: Replace .- strings with - during translation from virtual name to physical name (#51)
  • syncer: Added support for pod spec.affinity.podAffinity and spec.affinity.podAntiAffinity (#52)
  • syncer: Fixed an issue where long running requests such as kubectl exec could wrongfully timeout
  • syncer: vcluster now calls the virtual cluster admission webhooks for the requests pods/exec, pods/attach & pods/portforward
  • syncer: syncer will not redirect pods/proxy and service/proxy requests anymore
  • syncer: vcluster will now use the virtual cluster k3s version as fake node version
  • syncer: New flag --enable-priority-classes to sync priority classes from vcluster to the host cluster. This is by default off and if not enabled, vcluster will strip out any priority classes of pods that will be synced to the host cluster to avoid problems with unknown priority classes
  • syncer: New flag --fake-kubelets to disable fake kubelet endpoints
  • syncer: vcluster now supports switching service type from ExternalName to NodePort / ClusterIP
  • syncer: vcluster will now set the actual allocatable resources for synced nodes if --fake-nodes=false
  • syncer: Secrets, endpoints and configmaps are now synced without "applying" changes. This has the advantage that synced resources do not need to store the original configuration anymore and differences between virtual and physical objects can be calculated more precisely
  • syncer: Added a new flag --sync-node-changes that will sync the node resources, taints & labels from the virtual cluster to the host cluster if enabled.
  • syncer: Added leader election to the syncer pod
  • chart: vcluster can now be used without specifying a persistent volume claim
  • chart: volumes can now be configured in the vcluster chart
  • chart: replicas can now be configured in the vcluster chart
  • chart: nodeSelector, affinity and tolerations can now be configured in the vcluster chart (#34)
  • chart: syncer.livenessProbe and syncer.readinessProbe can now be configured in the helm chart
  • chart: statefulset labels and annotations can now be configured in the helm chart
vcluster - v0.3.0-beta.4

Published by FabianKramm over 3 years ago

vcluster - v0.3.0-beta.3

Published by FabianKramm over 3 years ago

vcluster - v0.3.0-beta.2

Published by FabianKramm over 3 years ago

vcluster - v0.3.0-beta.1

Published by FabianKramm over 3 years ago

vcluster - v0.3.0-beta.0

Published by FabianKramm over 3 years ago

vcluster - v0.3.0-alpha.2

Published by FabianKramm over 3 years ago

vcluster - v0.3.0-alpha.1

Published by FabianKramm over 3 years ago

vcluster - v0.2.0

Published by FabianKramm over 3 years ago

Changes

  • Added support for kubernetes v1.21.0
  • vcluster now supports projected volumes
  • New cli command vcluster list to list virtual clusters
  • New cli command vcluster --version to display the current vcluster version
  • New cli command vcluster upgrade to upgrade the vcluster to the latest version
vcluster - v0.2.0-beta.0

Published by FabianKramm over 3 years ago

Changes

  • Added support for kubernetes v1.21.0
  • vcluster now supports projected volumes
  • New cli command vcluster list to list virtual clusters
  • New cli command vcluster --version to display the current vcluster version
  • New cli command vcluster upgrade to upgrade the vcluster to the latest version
vcluster - v0.1.1-beta.0

Published by FabianKramm over 3 years ago

Changes

  • Added support for kubernetes version v1.21.0
  • Added support for projected volumes & service account token volumes
Package Rankings
Top 1.89% on Proxy.golang.org
Badges
Extracted from project README
Join us on Slack! Open in DevPod!
Related Projects