Comparing the advantages and disadvantages of local Kubernetes clusters and remote Kubernetes clusters for development.

If you are one of the many companies using Kubernetes as an infrastructure technology, you might now ask yourself how to guide your engineers to use Kubernetes in the development phase of the software. There are several degrees of how far you want to go with introducing Kubernetes into your development process. One general question you have to answer in any case of developer access to Kubernetes is if they should rather use local clusters or work with remote Kubernetes clusters in the cloud. In this post, I will compare the two general approaches and describe their main strengths and weaknesses.

Local Cluster

For many developers, the first time they are in direct contact with Kubernetes is in a local environment. That means that they are running Kubernetes on their machines instead of the usual cloud environments Kubernetes was initially made for.

Since the developer is the only one who has to access this cluster for development, local clusters can be a feasible solution for this purpose. Over time, several solutions have emerged that are particularly made for running Kubernetes in local environments. The most important ones are Kubernetes in Docker (kind), MicroK8sminikube and k3s. For a comparison of these local Kubernetes options, you can look at this post.

Advantages of Local Kubernetes Clusters

Running Kubernetes on your local machine during development has some advantages compared to using a cloud-based environment:

  • Direct Kubernetes Access: At first, the developers are admins of their own clusters and can thus freely configure everything as they need it and they can play around with all available Kubernetes features.
  • Perfect Isolation: Due to the use of individual clusters on their own computers, the developers are perfectly isolated from each other. They could even use the local clusters without an internet connection. This has the advantage that the different engineers cannot interfere with each other even if someone messes up something. In such cases, it is also easily possible to start from scratch with a clean system. Additionally, strict isolation enforces a clear responsibility. If something breaks, there is only one person to blame.
  • No Computing Cost: Finally, local clusters run on the existing machines of the developers and therefore, there will be no extra cost associated with their use (compared to sometimes costly cloud resources). In some companies, this has the additional benefit that no complicated budget approvals are necessary to work with local Kubernetes solutions.

#cloud-native #cloud-development #kubernetes #kubernetes-cluster #software-development

Local Cluster vs. Remote Cluster for Kubernetes-Based Development
1.20 GEEK