Managed Kubernetes services typically provide features to help set up key components of a complete Kubernetes environment.
There are two main ways to deploy Kubernetes: Setting up and managing clusters on your own or using a “managed Kubernetes” platform or service, which automates at least some of the configuration and management work for you.
Which is a better choice? Read on for a comparison of different approaches to deploying Kubernetes.
What is managed Kubernetes?
First, let’s define what managed and unmanaged Kubernetes mean.
A managed Kubernetes platform typically provides automation tools that handle tasks such as setting up host servers (i.e., nodes), configuring those nodes into a cluster, and replacing nodes when they fail.
Some services also provide features to help set up storage, networking, logging, and other key components of a complete Kubernetes environment.
Note, however, that there is significant variation within the feature sets of platforms that label themselves “managed Kubernetes.” Some, like Amazon EKS and Azure AKS, mostly manage only the infrastructure layer of a Kubernetes environment. Others, like Platform9, are a bit more expansive in terms of their management features — but also less tightly integrated with specific public clouds.
See also: Mitigating Kubernetes Security Gaps
What is the opposite of managed Kubernetes?
If you don’t want to use a managed approach, there is nothing stopping you from setting up the host infrastructure, creating a cluster, and configuring it on your own.
This approach is what you could call unmanaged Kubernetes or do-it-yourself Kubernetes. In the early days of Kubernetes, before the advent of managed Kubernetes platforms, this was the only way to build clusters.
Pros and cons
Whether managed Kubernetes is right for you depends on several factors. On the one hand, managed Kubernetes offers some important benefits:
- Less expertise: Managed Kubernetes reduces the learning curve for running Kubernetes somewhat. That is certainly not to say that it totally eliminates the need for Kubernetes expertise, but it does smooth over some of Kubernetes’s more complex edges, like networking and storage configuration.
- Time-to-deploy: It’s almost always faster to get a cluster up and running using managed Kubernetes than doing it yourself.
- (Possibly) more secure: Arguably, managed Kubernetes environments are more likely to have a stronger security posture than unmanaged environments, where it’s easier to make a configuration mistake that invites security issues or fails to follow best practices from a security standpoint. That said, you shouldn’t put faith in your managed Kubernetes platform to optimize security for you.
- Easier scalability: Because managed Kubernetes platforms automatically manage infrastructure, they scale with less effort.
On the other hand, there are some reasons why you may not want to use managed Kubernetes:
- Less control: This is the biggest downside. With a managed approach, you are limited to whichever infrastructure options and integrations the platform supports. In an unmanaged environment, you have total freedom to design your clusters exactly as you like.
- Cost: Managed Kubernetes usually costs more than doing it yourself, at least in terms of direct costs. Of course, you should factor in the indirect staff and time costs that come with managing clusters on your own to determine which approach will deliver the best cost results.
Conclusion
Ultimately, either approach — managed or unmanaged Kubernetes — will result in a viable Kubernetes environment. Whether one strategy is better for your team than another depends on how much Kubernetes expertise you have, how quickly you want to get your clusters up and running, and how important it is to have full control over how your clusters are designed and configured.