Kubernetes is a production-ready, open-source platform designed with Google’s accumulated experience in container orchestration, combined with best-of-breed ideas from the community. It is designed to automate deploying, scaling, and operating application containers.
Kubernetes coordinates a highly available cluster of computers that are connected to work as a single unit. The abstractions in Kubernetes allow you to deploy containerized applications to a cluster without tying them specifically to individual machines.
In short, Kubernetes is
- Portable: public, private, hybrid, multi-cloud
- Extensible: modular, pluggable, hookable, composable
- Self-healing: auto-placement, auto-restart, auto-replication, auto-scaling
Why Managed Kubernetes?
First off, let us understand why do we want to go Managed Platform. The effort required to set up a single node cluster is different from running a customized multi-node/zone/multi-cloud HA cluster. When your enterprise is ready to scale up to more machines and higher availability in a short span, Managed Kubernetes platforms are the right choice to create and maintain.
Let us look at some of the key advantages
- Automated Kubernetes version upgrades and patching
- Easy cluster scaling
- Self-healing hosted control plane (masters)
- Experts take care of ongoing operations management and support for the entire technology stack
- Manage and support the containers, cluster application services such as monitoring, logging, security, etc.,
- Multi-cloud portability
- Cost savings – pay only for running agent pool nodes
With this context now, let us check out TOP 7 Managed Kubernetes Platforms on what each one has to offer.
Launched in 2015, Kubernetes Engine builds on Google’s experience of running services like Gmail and YouTube in containers for over 12 years. Kubernetes Engine allows you to get up and running with Kubernetes in no time, by completely eliminating the need to install, manage, and operate your own Kubernetes clusters.
Recently Google introduced Anthos, Google Cloud’s new open platform that lets you run an app anywhere. Anthos is based on GKE and will let you manage workloads running on third-party clouds like AWS and Azure, giving you the freedom to deploy, run, and manage your applications on the cloud of your choice.
Key Features :
- Kubernetes Engine clusters are fully managed by Google Site Reliability Engineers
- Runs on Container-Optimized OS, a hardened OS built and managed by Google.
- Stackdriver Logging and Stackdriver Monitoring can be integrated with simple checkbox configurations
- Backed by Google security team of over 750 experts and is both HIPAA and PCI DSS 3.1 compliant.
- Support Stateful application support by attaching persistent storage to containers, and even host complete databases.
- Node auto-repair to maintain node health and availability
- Supports the common Docker container format.
- Support for setting up resource limits i.e., you can now specify how much CPU and memory (RAM) each Container needs.
GKE uses Google Compute Engine instances for nodes in the cluster. Hence you would be billed for each of those instances according to Compute Engine’s pricing until the nodes are deleted. Compute Engine resources are billed on a per-second basis with a 1-minute minimum usage cost. You can use the Google Cloud Platform pricing calculator to create an estimate of your monthly GKE charges, including node pricing.
Amazon EKS runs the Kubernetes management infrastructure across multiple AWS availability zones to eliminate a single point of failure. Amazon EKS is a certified Kubernetes conformant, applications running on any standard Kubernetes environment are fully compatible and can be easily migrated to Amazon EKS.
Key Features :
- EKS automatically detects and replaces unhealthy control plane nodes, and provides on-demand upgrades and patching.
- Secure and encrypted communication channels are automatically setup between your worker nodes and the managed control plane, making your infrastructure running on Amazon EKS secure by default.
- EKS is integrated with AWS CloudTrail to provide visibility and audit history of your cluster and user activity.
- Fully compatible with Kubernetes community tools and supports popular Kubernetes add-ons.
- $0.20 per hour for each Amazon EKS cluster
- Pay for AWS resources (e.g. EC2 instances or EBS volumes) for Kubernetes worker nodes according to the Amazon EC2 pricing page.
Azure Kubernetes Service (AKS) makes it simple to deploy a managed Kubernetes cluster in Azure. As a hosted Kubernetes service, Azure handles all heavy lifting of all the complexity, the operational overhead of managing a Kubernetes cluster for you.
In short, AKS would provide a container hosting environment by using open-source tools and technologies. To this end, standard Kubernetes API standard endpoints are exposed and you can leverage any software that is capable of talking to a Kubernetes cluster.
Key Features :
- Azure Kubernetes Service offers various deployment options like via portal, command line, and template-driven deployment options.
- Container logs are collected and stored in the Log Analytics workspace and are available through the Azure portal, Azure CLI, or a REST endpoint.
- Support for creation of GPU enabled node pools. Azure currently provides single or multiple GPU enabled VMs.
- Support for community tools like Helm, Draft, and the Kubernetes extension for Visual Studio Code.
- Support for Docker image format.
- Compliant with SOC, ISO, and PCI DSS.
- Free container service & no charges for cluster management.
- Pay only for the virtual machines instances, storage, and networking resources consumed by your Kubernetes cluster.
- Estimate the cost of the required resources using the Container Services calculator.
DigitalOcean Kubernetes enables development teams both small and large to quickly take advantage of the Kubernetes platform without the lead time required to provision, install, and operate a cluster.
- Simple and developer-friendly interfaces.
- Launch containerized applications into a managed, production-ready cluster without having to maintain and configure the underlying infrastructure.
- Seamlessly integrating with the rest of the DigitalOcean suite including Load Balancers, Firewalls, Object Storage Spaces, and Block Storage Volumes and with built-in support for public and private image registries like Docker Hub and Quay.io, developers can now run and scale container-based workloads with ease on the DigitalOcean platform.
- With full programmatic control of their cluster using the exposed Kubernetes REST API, developers can benefit from the rich ecosystem of open-source tools while still reaping the convenience of managed infrastructure.
- Kubernetes cluster can be deployed for as little as $10 per month.
Platform9 offers managed Kubernetes on-premises or on any public cloud, and provides 24/7 health monitoring and alerting.
- Industry’s only SaaS managed solution that is infrastructure agnostic, working across public clouds and on-premises server infrastructure.
- Several Kubernetes integrations are included out-of-the-box
- Managed Kubernetes creates highly available, multi-master, multi-etcd Kubernetes clusters that can span across availability zones in your private or public cloud environment.
- Simple and elegant user interface that makes it easy to manage multiple Kubernetes clusters, different cloud providers, and multiple private datacenters.
IBM Cloud Kubernetes service delivers powerful tools by combining Docker containers, the Kubernetes technology, an intuitive user experience, and built-in security and isolation to automate the deployment, operation, scaling, and monitoring of containerized apps in a cluster of compute hosts.
- Fully managed Kubernetes master that is continuously monitored and updated by IBM
- Automatic scanning of images in your private IBM Cloud registry.
- Cluster dashboard to quickly see and manage the health of your cluster, worker nodes, and container deployments.
- Review logging information by using IBM Cloud Log Analysis to see detailed cluster activities.
- Storage infrastructure isolation
- Pay-As-You-Go or Subscription based pricing: You can create a free trial cluster.
- You can also provision IBM Cloud infrastructure resources to create and use in standard clusters.
Kubermatic is a Cluster-as-a-Service that provides managed Kubernetes for your infrastructure. Kubermatic is directly integrated with leading cloud providers DigitalOcean and Amazon Web Services, as well as any provider offering Ubuntu 16.04 or greater, even in your own datacenter.
- UI-installer with unified cloud and on-prem experience
- Deploy your cluster and add nodes with the click of a button.
- Multi-tenancy and access control
Another notable platform is Canonical Ubuntu Distribution of Kubernetes, key features of CDK are
- Multi-cloud workload portability
- AI and machine learning optimizations with Nvidia and Google
- Upgrades guaranteed between K8s releases
- Full OCI compatibility with docker and containerd runtimes
- Prometheus and ELK logging and monitoring included
Choose Right Solution
Well, don’t worry too much about what option is right for you. Kubernetes can run on various platforms either from your laptop to VMs on a cloud provider, to a rack of bare metal servers. Choosing the right solution depends on your specific needs. If you’re just starting up, you can look at local machine Docker-based solutions (ex.minikube). When you are ready to scale up to more machines and higher availability, a hosted solution like the above ones is the easiest to create and maintain.
Following are the key considerations that might help you to choose the right solution
- Multi-cloud workload portability
- Multi zone(AZ) availability
- K8s automated upgrades, conformance
- Deployment options / Dev Tooling support
- Roles & Responsibilities of Platform vs Customer Managed (RBAC)
- Security compliance (ex.HIPAA,PCI DSS etc.,)
- Integrated Logging/Monitoring/Self – healing options
- Pricing options
Like this post? Don’t forget to share it!
Additional Resources :
- What are the key Kubernetes metrics that you have to monitor ?
- Get smallest, fastest, fully-conformant MicroK8s Kubernetes
- How to back up and restore your Kubernetes cluster resources and persistent volumes?
- Implementing Policies in Kubernetes
- Kubernetes tutorial – Create simple cluster & Deploy app
- Kubernetes tutorial – Scale & perform updates to your app
- Kubernetes tutorial – Create deployments using YAML file