May 31, 2019
Topics: 3 minute readKubernetes
In 2018, NetApp acquired a company that was doing some very special things with Kubernetes. Their team was making great leaps in simplifying the deployment, management, and upgrading of Kubernetes clusters and infrastructure, with a vision of enhancing the platform to cater to developers. One of their core tenets was to provide an upstream approach to Kubernetes, offering agnostic availability and delivery of workloads across all major clouds – including the provisioning of infrastructure resources in the cloud providers’ native Kubernetes services, EKS, AKS, and GKE.
Inevitably, the question arises:
“Why should I use an additional service like NetApp® Kubernetes Service to deploy to the native Kubernetes services in the cloud providers, instead of just doing it directly with them?"
In short: why use NKS + EKS, instead of just using EKS?
The concise answer is flexibility.
When you’re using one of the cloud providers’ native Kubernetes services, they’re in control of your master nodes. That simple reality has a number of negative implications, but the big ones are:
- The cloud provider controls the Kubernetes version, which limits both features and compatibility
- They lock you in to that provider
- They make private topology impossible
Among these three, the first on the list is the most crucial. All three of the major cloud providers, which also provide a Kubernetes service, lag behind Kubernetes releases. At the time of writing, the current stable version of Kubernetes is 1.14 (released March 28, 2019). But, as of May 2019:
- Amazon EKS is currently locked on version 1.12
- Microsoft Azure is using version 1.13
- GKE supports 1.12
The time lag is anywhere from 6-12 months in stable releases of Kubernetes, which limits core features and updates, such as ClusterAPI, Container Storage Interface (CSI), and Custom Resource Definitions (CRD). Those features came along in 1.13 and have remained crucial to the service. The latest 1.14 release has added support for .NET and Windows Nodes, as well as many other notable enhancements.
Maybe you don’t need those features now, but maybe you’ll want them in the future. Or you might need some other feature that requires a more up-to-date version of K8s, and you’ll have zero recourse to migrate out of the managed service because they don’t own their master nodes, or control their own development roadmap, because of the out-of-date K8s version.
Or you could just use NetApp Kubernetes Service to control your cluster builds, deploying the latest and greatest version of K8s, so that you can control your master nodes, alongside a rich, elegant, and simplified user interface.
A Balanced Approach to Managing Your Kubernetes
But, at the end of the day, using NKS on top of another managed provider is akin to wearing mittens over your gloves. The comparison between NKS-and-EKS and NKS-alone boils down to two things: upgrading and managing your Master nodes and controlling the things that go into your cluster that require master-level modifications, such as routing and access control.
We love our cloud partners. We are much better together, and we’re jointly working toward a common goal of bringing Kubernetes to enterprises. But if you feel strongly about using a managed provider’s Kubernetes service, we do recommend using GKE over the other clouds. With Google’s recent announcement of Anthos, we believe they’re moving toward an openness to multi-cloud infrastructure.
However, the simplest route—and the most balanced one, to my mind--is to adopt AWS, Azure, or Google Cloud, and to deploy and manage your clusters with NetApp Kubernetes Service, which updates along with each new Kubernetes version and gives you control over your Master nodes. Think of it like this:
Control your master nodes.
Control your Kubernetes version.
Control your destiny.
Ready to Try Out NetApp Kubernetes Service?
Great! Head on over to Cloud Central, create an account, and enjoy a free 30-day trial of NKS! Check out demo videos, pricing guides, and join our community Slack channel to ask any questions! Just add your cloud provider credential of choice and create your first cluster today.