In a previous blog post, we discussed the basics of containers and their comparison with virtual machines. Kubernetes, a Docker container orchestration platform, has become an integral component of computing environments. Container orchestrators are tools that automate the process of provisioning and managing containers, making them indispensable in a large-scale Docker environment. While Kubernetes is not the sole container orchestrator, alternatives like Swarm and Mesos exist. Nonetheless, Kubernetes has emerged as the most widely adopted orchestration solution for containers.
Available Options to Build a Kubernetes Environment
There are several ways to build a Kubernetes environment, including DIY, using a managed service by MSP (Managed Service Provider), or leveraging cloud vendor services.
For DIY, there are open source projects available such as OKD (The Community Distribution of Kubernetes that powers Red Hat OpenShift), Rancher (Enterprise Kubernetes Management), and Kubernetes itself, which serves as the foundation for all these editions.
MSPs offer Kubernetes solutions such as Red Hat OpenShift, VMware Tanzu, and SUSE Rancher, which are some of the top distributions used globally.
Public cloud vendors also provide their own versions of Kubernetes with AWS (Amazon Web Services) offering EKS (Amazon Elastic Kubernetes Service), Microsoft Azure providing AKS (Azure Kubernetes Service), and Google Cloud offering GKE (Google Kubernetes Engine) or Anthos.
Enterprise Deployment Models
To choose the best deployment model for Kubernetes, a holistic approach is necessary, taking into account not only the Kubernetes platform but also the infrastructure surrounding it, such as compute nodes, storage, and networking. The flexibility and cost of migrating to another platform also play a role in determining the best solution.
The ultimate value of Kubernetes is determined by what you do with it and at what cost and effort. Building your own may make sense at a certain scale and complexity, but minimizing cost and effort is possible with other solutions. In this regard, there are several popular delivery and deployment models for Kubernetes.
Doing It by Yourself
The DIY approach involves an organization building and managing their entire Enterprise Container Platform themselves. This option offers the most flexibility, but comes with the highest operational burden and complexity, as well as the responsibility of maintaining the platform.
The main challenge of the DIY approach lies in the maintenance of integrations between all the tools in the platform, which can cause outages and disrupt workflows. This challenge results in higher costs as the organization needs to invest in highly-paid experts for deployment, upgrades, and maintenance, with no economies of scale to benefit from.
Although the DIY approach may save on licensing costs initially, the long-term costs may not scale well as the platform team has only one internal customer.
Using a Managed Service
The managed service approach involves using a commercial service provider that specializes in running Kubernetes or an Enterprise Container Platform. This is the easiest and quickest way to get started, with onboarding being a major advantage. Managed services typically have a large customer base, resulting in more investment in feature quantity, quality, and quality of service. This translates into a better user experience, more features, and a lower cost. Moreover, operational work is taken off the customer’s plate, which reduces their cognitive load and enables them to focus on business-related projects instead of the infrastructure.
However, it is the least flexible option, as it relies heavily on standardization that may not fit your requirements and use case. Lifecycle management control is shifted to the service provider, and scheduled downtime for maintenance or updates may happen at inconvenient times. Additionally, relying on external skills can be a challenge if there is a lack of trust in the service provider’s ability to deliver.
Choosing between MSPs and Cloud Vendors
When utilizing cloud services, you are also utilizing a service provider’s hosting infrastructure, which results in being limited to using their services for various aspects such as cluster nodes, storage, and networking. Although this option is quick to set up, it is also more expensive and less customizable. One of the biggest advantages of the public cloud is its ability to handle sudden spikes in demand, such as during a Pokémon mobile game release or an online store promotion event. However, this lock-in can lead to additional costs and a loss of freedom of choice for other services like compute, storage, and networking.
Nevertheless, this presents an opportunity for MSPs. They can take advantage of the demand for Kubernetes setup and management services by providing tailored solutions that align with their customers’ preferred infrastructure. MSPs can differentiate themselves by offering flexibility, rapid deployment, robust support, and scalability. These are key competitive advantages that MSPs can leverage in this space.
The prerequisite for MSPs to consider storage solutions to build their “Kubernetes as a Service” infrastructure is the CSI (Container Storage Interface) support, it allows for better integration between the Kubernetes cluster and the storage solution. We introduced CSI in the previous blog post. With CSI support, MSPs can offer more flexibility and choice to their customers when it comes to choosing storage solutions and simplify the deployment process.
Different Approaches to Kubernetes Deployment
The following table compares DIY, MSP, or Cloud.
After weighing the benefits and drawbacks of deploying Kubernetes, it’s clear that enterprises have several options available, including DIY, MSP, or cloud-based solutions. Rapid time to value, such as the functionality provided by hosted solutions, is critical for businesses aiming for commercial success. However, lock-in issues may arise, causing reduced flexibility and optimization for cost, features, or performance. Therefore, selecting the right container platform and deployment is crucial to achieving the proper balance between speed, flexibility, features, and cost.
For SMB users, the ideal approach for maintaining flexibility, if not tied to the public cloud, is to choose an MSP that has found a balance in all areas. When MSPs pick storage, they must ensure it supports CSI (Container Storage Interface) to provide excellent total cost of ownership for SMB users.