Loft Labs, a venture-backed startup working on developer tooling and platform technology for Kubernetes, today announced a Plugin System & SDK (software development kit) for its popular open-source project vcluster, enabling the project’s user community and other software providers in the cloud-native space to customize the synchronization logic of the vcluster “syncer” component. This gives users flexibility to define which resources get synchronized 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 customizable 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. “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 customize vcluster’s behavior to their specific needs and integrate virtual clusters into their existing tool stack.”
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.
First launched in April 2021, vcluster is used to create lightweight Kubernetes clusters that run inside the namespaces of underlying Kubernetes clusters. 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).
At the same time, virtual cluster users can expect that their virtual cluster behaves just like any regular Kubernetes cluster because vcluster is a certified Kubernetes distribution, which means that it passes all conformance tests that CNCF requires. Virtual clusters are often used as development environments when engineers are building, testing and debugging cloud-native software, but they are also frequently used as ephemeral environments for executing continuous integration/continuous delivery (CI/CD) pipelines.
Loft Labs builds its enterprise-grade Kubernetes platform Loft on top of vcluster. Loft is used by large organizations to create a self-service platform for their engineering teams. When an enterprise runs Loft, their 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.