Kubernetes is revolutionizing how applications are being deployed and managed. While there are many Kubernetes solutions available in the market, to meet the specific need of clients and businesses. It is still very tough to figure out the right solution relying upon the use case and budget. In this blog, we will evaluate the popular Kubernetes Service providers such as DigitalOcean, Platform9, and OpenShift to find the perfect solution.
DigitalOcean Kubernetes (DOKS) is a managed Kubernetes service that lets you deploy Kubernetes clusters without the complexities of handling the control plane and underlying infrastructure. Clusters are compatible with standard Kubernetes features and integrate natively with DigitalOcean Load Balancers and various block storage solutions.
DigitalOcean Kubernetes provides administrator access to the cluster and full access to the Kubernetes API with no restrictions on which API objects you can create. They offer the latest version of Kubernetes as well as earlier patch levels of the latest minor version to manage the essential services and settings on your behalf that you cannot or should not modify.
Platform9 Managed Kubernetes (PMK) is a SaaS-based, continuously managed Kubernetes service that integrates multiple infrastructures. Platform9 provides an upstream Kubernetes master that can be deployed to a variety of cloud providers such as Google Cloud, Azure, AWS, VMWare vSphere, and bare metal. Platform9’s Kubernetes management platform also guarantees high uptimes with support for remote monitoring, security patching, and upgrading Kubernetes clusters.
OpenShift Container platform is a traditional container orchestration solution that needs to be deployed and managed by customers for building and scaling containerized applications. OpenShift is excellent for medium to large deployments, because of the stability and support offered by Red Hat. Red Hat also offers many different products from the Red Hat portfolio that can be integrated easily with OpenShift, including CloudForms, Core OS, Ceph, and OpenStack. OpenShift is a great option for organizations that are looking to make most of their enterprise investment.
Implementing highly available clusters for your infrastructure is crucial if you are looking forward to running mission-critical applications on Kubernetes. Highly available systems can not only recover from server or component failure automatically but also guarantees that the Kubernetes endpoint will be available even if one of the regions becomes unavailable. Each HA cluster has different needs in terms of software and configuration. However, load balancers play a significant role in creating a highly available setup at the application level.
Digital Ocean load balancers are monitored by vendor 24*7 for high availability. If any anomalies are detected, Digital Ocean will correct them and fix them so that your Load Balancer will continue running smoothly for your business-critical applications. Digital Ocean also automatically provisions and renews SSL certificates for free through Let’s Encrypt, ensuring secure communication between clusters. They also support HTTP/2 for users, providing even better performance for your node’s communication.
Openshift container platform provides high availability for cluster deployment by load balancing. HAproxy is used as a default load balancer that can create a multi-master and multi-etcd cluster environment – with etcd, nodes either forming their own cluster or deployed on the same. Other load balancers can be implemented through plugins. OpenShift also supports master and worker nodes spread across multiple availability zones to provide even better HA.
Platform9 has built-in support for highly available clusters out of the box. The platform supports clusters of different types of master nodes(1/3/5). Platform 9 also has etcd built-in, which provides optimal service discovery and supports full repair or recovery of the cluster’s state and its configuration upon failure. Load balancing by default in Platform 9 is supported with MetalLB load balancer. Platform9 can also integrate well with other specific load balancers(AVI and others).
The deployment model of a Kubernetes solution defines how it will integrate within your enterprise environment and what level of support and services level it can provide for business-critical operations. The top three deployment models for Kubernetes solutions are:
Traditional on-premises deployment - users deploy Kubernetes on their infrastructure using professional services or on their own.
Hosted Kubernetes as a service (KaaS) - A vendor will offer to host your Kubernetes cluster on your data center or cloud. That means that you have an external team of developers who manages your infrastructure.
Hybrid Cloud Kubernetes as a Service - Kubernetes is offered as a service on your own infrastructure or public cloud infrastructure.
Coming to deployment models provided by three platforms, Platform9 and Digital Ocean provide hosted SaaS-managed offering means that customers can run their upstream open-source Kubernetes clusters on any infrastructure: on-premises, public clouds, or at the hybrid cloud. Both Kubernetes solution remotely handles all the sophisticated monitoring, alerting, scaling for your clusters, making it easier to deploy clusters across environments and clouds.
OpenShift provides offerings for all three deployment models. For public cloud deployment, OpenShift Online is available, whereas for customers looking for Saas-managed and Hybrid Cloud deployment. OpenShift Dedicated and OpenShift container platforms are made available by RedHat.
Clusters in Kubernetes can quickly scale horizontally to support large scale workflows workloads. However, running Kubernetes in production may require the ability to run multiple Kubernetes clusters, since you want to fully isolate your dev/test applications from production applications by deploying them on a separate cluster.
A typical deployment in OpenShift creates a single Kubernetes cluster is designed to scale up to 2000 nodes and 120,000 pods. All the users of that deployment are expected to share that single cluster and achieve isolation via Kubernetes namespaces, and OpenShift multi-tenancy. Multiple clusters are delivered through multiple OpenShift deployments and can be managed through Red Hat’s hybrid cloud console (OpenShift 4 or higher).
In Digital Ocean, you can set up multi-cluster deployments using any open-source container management platform supporting Kubernetes. First, clusters must be in a single datacenter region. Currently, DigitalOcean’s data centers region is in the United States, Canada, Netherlands, United Kingdom, and India. Second, clusters can scale up to 512 nodes, and each node can have up to 110 pods. Lastly, network bandwidth is limited at 2 Gbps.
Platform9 has built-in support for multi clusters out of the box. You can create any number of clusters depending upon the needs of production or testing applications. Platform9 also provides admins the ability to manage multiple clusters across different regions, data centers, and clouds remotely.
Vendor lock-in issues usually happen due to different implementations of storage architecture by various cloud storage providers. Cloud providers define an abstraction layer between the applications and the underlying cloud services, making migration of data expensive across different vendors forcing the customer to get locked into the platform.
Red Hat OpenShift uses the open-source Kubernetes as a foundation, although there are plenty of OpenShift features that lock-in customer to the RedHat platform. OpenShift’s Kubernetes differs significantly from upstream Kubernetes. OpenShift has added their own API’s that are not compatible with Kubernetes constructs and APIs, making applications challenging to run on upstream Kubernetes.
OpenShift only supports Red Hat Enterprise Linux (RHEL) - no other Linux (let alone Windows) is supported as the OS for production deployments limiting the infrastructure options. OpenShift also does not support the standard Helm charts forcing customers to use their OpenShift templates, which are nowhere near as powerful and feature-rich as Helm charts.
On the other hand, Platform9 Managed Kubernetes and Digital Ocean Kubernetes can use a 100% pure, upstream open source version of Kubernetes – certified by CNCF and supports all famous enterprise Linux distributions – Red Hat, CentOS, Ubuntu. That ensures customer applications can be easily migrated across any certified Kubernetes distribution using the standard Open API’s.
Furthermore, with Platform9, the same version of upstream Kubernetes can be deployed to any target cloud provider, including AWS, Azure, Google, or bare metal. That eliminates lock-in from proprietary distributions and avoids lock-in to the Kubernetes services offered by the public clouds such as EKS, AKS, GKE, and others.
SLA (service level agreement) is an optional feature that provides an agreement backed, guaranteed uptimes for your Kubernetes cluster. SLA numbers are essential when taking into account: potential outages, pods not getting rescheduled, and any other potential resource management failures.
Coming to SLA for Kubernetes Platforms, Platform9 guarantees 99.9% cluster uptime with high availability and self-healing features. OpenShift offers 99.5% uptime for fully-managed clusters (OpenShift Dedicated), and DigitalOcean provides a 99.99% uptime SLA for both Droplets and blocks storage. They also refund lost time back to your account at the hourly rate incurred.
Kubernetes’ RBAC approach allows administrators to limit the number of operations a user is allowed and limit the scope of operations. In practical terms, this means users can be allowed or disallowed access to resources in a namespace and granular control over who can read or modify resources.
It’s possible to let all users log in using full administrator credentials. RBAC allows setting fine-grained permissions to limit users from accessing sensitive data or executing admin-level commands. While all of the KaaS offerings support fully support Kubernetes RBAC implementations, in OpenShift, RBAC comes with much stricter policies by default.
Digital Ocean will charge you based on the number of nodes or vCPUs you pick. You can also change the number of nodes or vCPUs at the end of your current billing term (monthly or annual, based on your selection when you started your plan). They also alert you when your usage exceeds the number and provide you a grace period long enough to make adjustments to your usage. Digital Ocean does not provide any ability to reserve nodes(called droplets in Digital Ocean). However, it has one of the largest share of Kubernetes deployments in the public cloud.
Platform9 provides various pricing plans for provisioning, managing, and upgrading the Kubernetes clusters on your infrastructure. The Freedom Plan gives your team access to a basic managed Kubernetes environment for up to 20 nodes. Whereas the Growth and Enterprise plans offer advanced capabilities. The Growth Plan also provides access to support up to a set number of tickets per month, 24/7 support, a 99.9% SLA and 50 nodes across three regions. But suppose you need all the functionality of a growth plan for larger deployments and advanced needs. In that case, the Enterprise plan offers large scale deployments, multiple regions, and customized support and SLA needs over the growth plan. Platform9 also provides the ability to deploy fewer than the minimum plan nodes or vCPUs with your paid plan. When you sign up for the Growth Plan, you only have to select the number of nodes or vCPUs you want (subject to a minimum level), but you don’t need to use all the nodes immediately. You can reserve extra nodes to cater for expected growth in your business.
OpenShift offers its managed Kubernetes Services through Red Hat OpenShift Dedicated platform. Its pricing is based on several variables, including application node sizing, single versus multiple availability zones, and standard versus bring-your-own cloud configuration. Bring your own cloud configurations starts with $3000 per month, not including the cloud compute resources cost.
Concerning the price overall, here are some rough figures to help you determine costs when you choose a Managed Kubernetes platform. This cost comparison assumes that you have 30 worker nodes, and each node has 32vCPU and near 128GB of RAM. Amounts represent monthly costs.
|DOKS||Platform 9||OpenShift Dedicated|
|Own Compute (AWS or GCP)||-||$25k||$25k|
|Service||DigitalOcean Kubernetes||Platform9 Kubernetes||RedHat OpenShift|
|Deployment Type||SaaS Managed||SaaS Managed||OnPremise, Platform as a Service(PaaS) Managed, Hybrid Cloud|
|Nodes Per Cluster||512||-||2000|
|Role-Based Access Control (RBAC)||Yes||Yes||Yes|
* Only on Enterprise Offerings
Deciding whether to use Digital Ocean or Platform 9 or OpenShift depends on various factors. Any of the above solutions can provide great functionality for your Kubernetes Clusters, but it’s tough to find a solution that perfectly suits your business needs since no one tool is made for a particular organization. It is crucial to define a starting point so you can start experimenting with your containerized platforms to find a solution that checks most of your business requirements.