Image source: Pixabay
Although Kubernetes (K8s) includes a significant number of built-in features and is designed to simplify container orchestration, it can be challenging to configure, deploy and manage. Many organizations do not have the in-house expertise needed for DIY use of K8s but don’t want to miss out on the benefits of containerized applications. Managed Kubernetes is a good solution to this dilemma.
What Is Managed Kubernetes?
Managed Kubernetes is when third-party providers take over responsibility for some or all of the work necessary for the successful set-up and operation of K8s. Depending on the vendor, “managed” can refer to anything from dedicated support, to hosting with pre-configured environments, to full hosting and operation.
Kubernetes already includes an impressive set of features, including scalability, detached credential configuration, self-recovery, workload management and batch execution, and progressive application deployment, but they require significant manual configuration. Managed solutions take care of much of this configuration for you, or at least guide you through the decision-making process.
Once your set-up is operational, managed solutions provide the tools necessary to automate routine processes such as updates, scaling, load-balancing and monitoring. When managed Kubernetes services include a hosting platform, they will also manage all of the maintenance and configuration needed for your infrastructure.
Features to Look for in a Managed Kubernetes Platform
The best platforms should be production-ready, including pre-configured environments, to allow you to go live as quickly as possible.
Cloud platform independence and the ability to be used with hybrid environments is important to ensure that you will be supported regardless of how your configuration might change. The platform you choose should be able to integrate with or fully replace any services or tools you’re currently using.
Built-in authentication and access controls for centralized management can reduce time spent on user and security management and simplify configuration auditing.
Solutions should provide high-availability and optimize load-balancing features already present in K8s. They should expand upon K8s’ self-recovery features and automate backup tasks.
Monitoring and logging should be automated and centralized, for easy auditing and verification of performance.
Any platform you choose should offer an easy-to-use interface where you can verify operations and make customizations, provided you have the proper expertise or guidance.
There is an expanding number of platforms available depending on your needs. I’ll briefly cover the biggest players below.
Google Kubernetes Engine (GKE)
Since K8s was created by Google engineers for in-house container orchestration, it makes sense that GKE is one of the most advanced managed platforms available. Designed for use on Google Cloud, it includes functionality for operation in hybrid environments as well. It is an upstream service run on a Container-Optimized OS built and managed by Google.
In addition to standard K8s features, GKE provides management of master nodes, automatic repair of stopped applications, IP range reservation, integrated logging and monitoring via Stackdriver, and the ability to configure private container registries. GKE offers auto-scaling, high availability and automatic updates. It allows you to transfer microservices with minimal configuration changes, create private image repositories via an integrated image builder, and manage authentication and access rights through an integrated console.
AWS Elastic Container Service for Kubernetes (Amazon EKS)
Amazon EKS is a K8s specific expansion of its existing Elastic Container Service (ECS). It is an upstream service available across multiple AWS availability zones built to run containers on EC2 instances.
EKS includes built-in security and encryption, automatic updating, and integration with CloudWatch for logging, CloudTrail for auditing, and IAM for access permissions. It is highly-available and requires only that you provision worker nodes and connect them to provided EKS endpoints. AWS contributes to the K8s codebase to maximize functionality for its users.
One down-side of EKS is that it is currently unable to support hybrid cloud configurations.
Unlike the previously mentioned options, OpenShift is an open-source, cloud-agnostic platform that is available in upstream and enterprise versions. Depending on the version, it can be run entirely in a public cloud with pre-created container templates managed by you, as a managed, highly-available private cluster hosted on a public cloud, or as a private Platform-as-a-Service (PaaS) in a data center or private cloud.
OpenShift includes custom domain routing, a software-defined network with an image library of prepackaged applications ready for installation, built-in monitoring with Prometheus and Grafana, and built-in security. It can be managed through a unified console or CLI tool and can be connected to some Integrated Development Environments (IDEs).
Although it can feel overwhelming to adopt and operate Kubernetes, there are many tools available that can help you manage the process. If you want a bit more control over your configuration and have the knowledge and experience required to do so, these tools can help simplify some of the more routine tasks.
If, however, you are looking for a way to take advantage of the benefits of Kubernetes with a hands-off approach, a fully managed platform solution is what you’re looking for. You can begin evaluating which solution will be best for you by checking out Kubernetes’ getting started guide for a full comparison of platform features.