Loft Labs vcluster targets Kubernetes synchonisation customisation frustrations
Loft Labs is startup working on developer tooling and platform technology for Kubernetes.
The team at Loft Labs has now announced a Plugin System & SDK (Software Development Kit) for its open source project vcluster.
The technology tabled here is designed to enable the project’s user community and other software providers in the cloud-native space to customise the synchronisation logic of the vcluster “syncer” component.
This, in turn, is intended to give users the flexibility to define which resources get synchronised to the underlying Kubernetes cluster and to specify how that should happen.
The vcluster open source software is growing quickly with more than 400,000 downloads and over 1,300 stars on GitHub in less than a year after its initial release.
“Opening up vcluster to be customisable and ‘programmable’ was the logical next step to address the increasing number of requests we receive for vcluster to integrate with other CNCF projects and cloud-native technologies,” said Fabian Kramm, co-founder and CTO of Loft Labs.
Kramm says that now, users can create and contribute vcluster plugins without having to deal with the internals of the vcluster core.
“This makes it easier for anyone to customise vcluster’s behavior to their specific needs and integrate virtual clusters into their existing tool stack,” he added.
What is a vcluster plugin?
Fundamentally, a vcluster plugin is a lightweight Kubernetes operator that has access to both the virtual cluster and the host cluster simultaneously. This is the main difference between a vcluster plugin and a regular Kubernetes operator that would just be installed inside the vcluster itself. Given this dual access, a vcluster plugin is able to translate resources between both the virtual cluster and its host Kubernetes clusters, which is the basic premise behind how vcluster works.
Each plugin will run as a sidecar container inside the vcluster pod. This is done to allow easier communication between vcluster and the plugins, as well as to deliver capabilities such as high-availability.
The vcluster project maintainers have created an SDK for writing plugins that abstract a lot of the syncer complexity away from the user, but still provides access to the underlying data structures if needed. Internally, the vcluster SDK uses the popular controller-runtime project, that is used by vcluster itself to create the controllers. The vcluster SDK makes it possible to write custom plugins with just a few lines of code.
Kombating Kubernetes multi-tenancy issues
First launched in April 2021, vcluster is used to create lightweight Kubernetes clusters that run inside the namespaces of underlying Kubernetes clusters… and, using virtual clusters solves the majority of multi-tenancy issues of Kubernetes because they offer:
- Better isolation than simple namespace-based multi-tenancy;
- Reduced cloud computing cost because virtual clusters are much more lightweight and resource-efficient than spinning up separate single-tenant clusters;
- Logical separation and encapsulation of application workloads from the underlying cluster’s shared infrastructure workloads (such as shared ingress controller or network plug-ins).
Loft Labs builds its enterprise-grade Kubernetes platform Loft on top of cluster; it is used by larger organisations to create a self-service platform for their engineering teams.
When an enterprise runs Loft, its engineers can provision virtual clusters on-demand whenever they need them, either using the Loft UI (user interface), the Loft CLI (command-line interface) or even using the Kubernetes command-line tool kubectl via the custom resources provided as part of Loft.