Digital Ocean Kubernetes (DOKS) vs. Google Kubernetes Engine (GKE)
A couple of years ago, the DIY revolution took all major competitors to Kubernetes (Swarm, Mesos,…) out of business. DIY Kubernetes may still be the force in retrospect, but the story of production deployments is altogether different.
Managed Kubernetes services lower the barrier to entry for businesses adopting Kubernetes in production. So much that they have started to take this freedom and speed for granted, they have moved from monthly release cycles to hourly even minutely cycles without putting resources into the nuances of the container orchestration platform.
Businesses are no more asking, “should they go with Kubernetes or not?”. They are asking, “which managed Kubernetes service provider should they choose?”. The providers are not making their choices easier, either. In a bid to deliver maximum value for the price point, they are not leaving any stone unturned.
Not all managed Kubernetes services are made equal.
Despite creating Kubernetes, Google is playing catchup with Amazon and Microsoft with its own managed Kubernetes service, Google Kubernetes Engine(GKE). In a market where Google is playing catchup with a major cloud player, you can only guess the state of minor players in managed Kubernetes space. Many organizations are shying away from looking beyond these threes.
Is Digital Ocean’s Kubernetes any match for Google’s Kubernetes Engine?
As I said, not all managed Kubernetes were created equal. GKE was created as a complete package for organizations trying to move their existing application codebase to Kubernetes. Google, as a promoter, wanted to influence its position in the industry to drive Kubernetes adoption, creating GKE was a part of the strategy to make Kubernetes Day-1 deployments painless.
On the other side of the spectrum is Digital Ocean, a minor player in the space trying to make Kubernetes day-2 operation more manageable for developers.
Of course, in the vertical market, you’re judged by features per se regardless of your target market.
But again, it is a matter of opinion, what features might look like deal-breakers for organizations running side-by-side comparison may confuse developers as unnecessary or adding complexities. You’ll see many developers running away from GKE to use a more developer-friendly solution like Digital Ocean.
Let’s see how these two managed Kubernetes services. We have more comparisons in the pipeline for the series in our blog.
Supported Version of Kubernetes
Kubernetes is currently running on v1.18 and is already previewing its users v1.19. Although Kubernetes 1.18 was released back in March, it is yet to make it either to GKE or DOKS. In fact, GKE is yet to make a final move to v1.17 and is still testing the waters around the version. When it comes to the supported version of Kubernetes, DOKS is a little ahead in the game.
As a developer-centric cloud firm, Digital Ocean is a little more aggressive pushing updates. In the meantime, Google doesn’t want to take any risk at times of pandemic and lockdowns.
If we go by the architecture of Kubernetes, a Kubernetes cluster contains a number of nodes, and each node, in turn, contains a number of pods. There are only so many nodes a cluster can run, and so many pods a node can. Cloud vendors tend to fix quota; they can allow it with their Kubernetes management services.
Being one of the largest cloud vendors, the GKE quote limit is much higher than DOKS. A GKE customer can run 5000 nodes/ cluster and 1000 nodes/pool compared to 512 and 512 on DOKS, respectively. When it comes to maximum pods per node, GKE and DOKS both allow 110 of them.
Unless you’re running an application at the scale and geographic distribution of, say Pokemon Go or Netflix, these quotas are not very reachable.
Control Plane Price
DOKS is free of cost, while GKE bills its customers 10 cents for every hour for every panel. DOKS is a lot cheaper if you’re starting out.
Upgrades and Maintenance
Both GKE and DOKS support automatic upgrades to control plane and worker nodes if the users don’t wish to upgrade them manually every now and then.
GKE supports Container Optimised OS, Ubuntu, and Windows Server, which is quite overwhelming, considering most developers are fine with a decent Linux distro. DOKS, with developers at its mind, just offers Debian.
Of course, both support Docker, although GKE has added support for containers, which I guess not as popular as Docker.
When it comes to container networking, both Kubernetes services have their own set of offerings. GKE has some Native GKE CNI implementation, while Cilium is standard on DOKS deployments. GKE supports sandboxing with gVisor and has GPU nodes. These features are conspicuous by its absence on DOKS.
Cluster Autoscaling and Node Auto-repair are two of the GKE’s features.
Data on GKE and DOKS are encrypted at rest. GKE users can configure keys for encryption while Digital Ocean managed keys for DOKS users. Calico and Cilium provide excellent network policy support for GKE and DOKS, respectively.
Infrastructure as Code
Terraform support is available on both the managed Kubernetes services. Users prefer Terraform to built-in GCP and DO provisioning processes for GKE and DOKS clusters because Terraform provides additional benefits such as unified workflow, full lifecycle management, and graph of relationships.
If you are worried about fine from some European commission, GKE supports all sorts of compliance standards: HIPAA, SOC, ISO, and PCI DSS. At the same time, Digital Ocean doesn’t specify which standards DOKS supports. This question suggests it doesn’t support HIPAA at least.
“DigitalOcean will not sign BAA agreements (Amazon will, but don’t want to go there).” Certified Kubernetes is another advantage of using GKE over DOKS.
Although DOKS and GKE try to market to a different set of audiences, at the end of the day, they are playing in an equal field susceptible to side-by-side comparisons. At the time, Google is gaining large grounds in the space taken over by the likes of Amazon and Microsoft.
DOKS lacks some features compared to GKE, but it’s the preferred managed Kubernetes for many developers avoiding unnecessary complexity.
Both GKE and DOKS look promising, but they have a long way to go.
Whether you are looking for enterprise features and choosing GKE or the simplicity of usage and choosing DOKS, the CloudPlex platform supports both.