Kubernetes Operations, or Kops, is an open source project used to set up Kubernetes clusters easily and swiftly. It’s considered the “kubectl” way of creating clusters.
Kops allows deployment of highly available Kubernetes clusters on AWS and Google (GCP) clouds. It includes features such as dry-runs and automatic idempotency, terraform config generation making Kops a great option for do-it-yourself (DIY) developers.
Most DIY developers who like to set up clusters by themselves start by playing with minikube and then move onto Kops. For deploying small production grade clusters, Kops is one of the best tools out there. Among the numerous out-of-the-box features included with Kops are the large set of networking backends which give the user flexibility for picking and choosing the network stack that best works for their use case.
However, each of these network backends come with a myriad of configuration options and it quickly becomes complex and difficult to get those configurations right and bring a cluster up successfully.
Standing up production grade Kubernetes clusters with DIY Kops comes with several challenges:
For production grade deployments, every enterprise has a slightly different need for networking, storage, and Infrastructure as a Service (IaaS). Let’s take networking as an example . Kubernetes clusters can be deployed on AWS with various network configurations as described below:
- Run all your cluster nodes on a public VPC
- Run all your cluster nodes on a private subnet but still allow Kubernetes services have access to the public internet
- Run your cluster on the AWS VPC but then connect it to your data center on a VPN preventing direct internet access from AWS
K8s running in an AWS VPC connected to on-prem data-center
While it is possible to pursue these options with Kops, it does get complex. Also deployments involving on-premise infrastructure, through VMware or OpenStack, and requiring fully functional multi-tenancy do not easily align with the use of Kops.
Configuring Kops for secure and complex networking architectures even on public clouds requires considerable manual configuration ― in addition to figuring out load balancing and persistent store for etcd.
2. Deployment Speed
With all of the above mentioned complexities, it takes a lot of time and effort to get the configuration right and to bring the cluster up successfully. A dedicated internal team with the required knowledge of Kops configuration, AWS architecture and general Kubernetes cluster management knowledge becomes necessary. All of this slows down an organization, especially if this dedicated team is composed of developers whose primary focus is on writing business applications, have to repurpose their time on to standing up Kubernetes clusters.
Kops is a great tool to bring up a cluster, but the day-to-day operations and ongoing maintenance will also involve a dedicated effort and sometimes even a separate team. There are numerous tools in the rich open-source ecosystem around Kubernetes that help with cluster operations and site reliability, but understanding all of them, choosing the right ones, and supporting them with SLAs can be tedious. Again, if this is being handled by developers, core business productivity will be affected.
Managed Kubernetes Solutions Make It Easier and Faster than Kops
These challenges can result in longer time to deploy, reduced developer productivity, and increased time to market. In many cases, the use of a managed Kubernetes platform is more appropriate, especially when it involves the use of large clusters and complex configuration requirements..
Not only is a quick deployment time obtained but post deployment activities for operations, supportability, monitoring, and logging are made less complex. All of these post-deployment activities can be carried out with DIY approaches using open source tools such as Prometheus and Grafana. However, putting all of this together is much easier and faster with a managed solution.
If you want to bring up small Kubernetes production grade clusters using DIY methods, Kops is a great way to go. But once a cluster is brought up, there are numerous elements to address for operations, logging, and monitoring. For most people, a managed Kubernetes solution may be a better choice.
Platform9 Managed Kubernetes Removes Complexity
Platform9 Managed Kubernetes (PMK) abstracts the complexity and provides an easy path to Kubernetes deployment for setting up production grade clusters quickly. This is true for deployment on both public cloud and on-premise environments but specially for the latter.
The guaranteed SLA from PMK removes the operational complexity and need for dedicated resources – especially re-purposes developers – thus increasing developer productivity. PMK aims to package not only Kubernetes, but all of the other important components (i.e., monitoring, logging, auto-healing) that are essential for a healthy distributed system.
We have the experience to help you move from a DIY Kops cluster set-up to the fully orchestrated Platform9 Managed Kubernetes environment. To get started with Platform9, you can deploy a free Platform9 Sandbox with Kubernetes installed. The sandbox includes a guided walkthrough for SaaS-managed Kubernetes, which allows you to get your environment up and running in just minutes. You can also contact us to schedule a free consultation or to register for a Platform9 15-day free trial.
Hear Arun Sriraman, Software Engineer, on “Kubernetes Operations with Kops.”