Kubernetes is great but complex software that can present significant “day two” challenges when put into production.
Developers who are new to Kubernetes – and most are – face a large knowledge gap if they want to support and optimize Kubernetes clusters.
In this piece, I will share different ways to handle problems when they arise.
Table of Contents
Optimize your Kubernetes cluster for costs
As Kubernetes adoption grows, so does the need for applications and engineers to access clusters. However, it is neither feasible nor cost efficient to always use entire physical clusters to achieve this goal.
Virtual clusters are a great way to reduce costs. In a scenario of 100 developers, we calculated up to 78% savings by using open source virtual clusters.
Using virtual clusters with open source software such as VirtualCluster or vcluster enables Kubernetes operators to run multiple virtual clusters within a single physical cluster, increasing the rent of each cluster. By using compute resources through this more common method, organizations can save on compute costs instead of using completely separate Kubernetes clusters.
Increase tenant insulation
By using policy engines, it is possible to implement software security rails on your cloud-native Kubernetes infrastructure.
Another great advantage of virtual clusters is that they are isolated from other users on the cluster. This gives each user their own workspace that looks and feels like a physical Kubernetes cluster.
In addition, virtual clusters enable a stricter form of multitenancy compared to namespace-based multitenancy. One of the biggest problems with namespace-based multitenancy is that it cannot contain cluster-scoped resources. Many applications need to create, or at least access, cluster-scoped resources such as nodes, cluster roles, persistent volumes, and storage classes.
Virtual clusters also provide security benefits by increasing isolation in multitenancy clusters through:
- Complete isolation on the control plane.
- Domain Name System (DNS) isolation.
- Resources created on a single namespace.
Organizations looking for a multi-tenant application solution that provides greater isolation of resources shared by their clusters should consider virtual clusters as an option. Not only do they save costs and are easier to deploy, they are also easier to manage than physical clusters.