Kubernetes can run on various platforms: from your laptop, to VMs on a cloud provider, to a rack of bare metal servers. The effort required to set up a cluster varies from running a single command to crafting your own customized cluster. Use this guide to choose a solution that fits your needs.
If you just want to “kick the tires” on Kubernetes, use the local Docker-based solutions.
When you are ready to scale up to more machines and higher availability, a hosted solution is the easiest to create and maintain.
Turnkey cloud solutions require only a few commands to create and cover a wide range of cloud providers. On-Premises turnkey cloud solutions have the simplicity of the turnkey cloud solution combined with the security of your own private network.
If you already have a way to configure hosting resources, use kubeadm to easily bring up a cluster with a single command per machine.
Custom solutions vary from step-by-step instructions to general advice for setting up a Kubernetes cluster from scratch.
Minikube is a method for creating a local, single-node Kubernetes cluster for development and testing. Setup is completely automated and doesn’t require a cloud provider account.
Kubeadm-dind is a multi-node (while minikube is single-node) Kubernetes cluster which only requires a docker daemon. It uses docker-in-docker technique to spawn the Kubernetes cluster.
Kubernetes IN Docker is a tool for running local Kubernetes clusters using Docker container “nodes”. It is primarily designed for testing Kubernetes 1.11+. You can use it to create multi-node or multi-control-plane Kubernetes clusters.
Docker Desktop is an easy-to-install application for your Mac or Windows environment that enables you to start coding and deploying in containers in minutes on a single-node Kubernetes cluster.
Minishift installs the community version of the Kubernetes enterprise platform OpenShift for local development & testing. It offers an all-in-one VM (minishift start
) for Windows, macOS, and Linux. The container start is based on oc cluster up
(Linux only). You can also install the included add-ons.
MicroK8s provides a single command installation of the latest Kubernetes release on a local machine for development and testing. Setup is quick, fast (~30 sec) and supports many plugins including Istio with a single command.
IBM Cloud Private-CE (Community Edition) can use VirtualBox on your machine to deploy Kubernetes to one or more VMs for development and test scenarios. Scales to full multi-node cluster.
IBM Cloud Private-CE (Community Edition) on Linux Containers is a Terraform/Packer/BASH based Infrastructure as Code (IaC) scripts to create a seven node (1 Boot, 1 Master, 1 Management, 1 Proxy and 3 Workers) LXD cluster on Linux Host.
Ubuntu on LXD supports a nine-instance deployment on localhost.
AppsCode.com provides managed Kubernetes clusters for various public clouds, including AWS and Google Cloud Platform.
APPUiO runs an OpenShift public cloud platform, supporting any Kubernetes workload. Additionally APPUiO offers Private Managed OpenShift Clusters, running on any public or private cloud.
Amazon Elastic Container Service for Kubernetes offers managed Kubernetes service.
Azure Kubernetes Service offers managed Kubernetes clusters.
Containership Kubernetes Engine (CKE) intuitive Kubernetes cluster provisioning and management on GCP, Azure, AWS, Packet, and DigitalOcean. Seamless version upgrades, autoscaling, metrics, workload creation, and more.
DigitalOcean Kubernetes offers managed Kubernetes service.
Giant Swarm offers managed Kubernetes clusters in their own datacenter, on-premises, or on public clouds.
Google Kubernetes Engine offers managed Kubernetes clusters.
IBM Cloud Kubernetes Service offers managed Kubernetes clusters with isolation choice, operational tools, integrated security insight into images and containers, and integration with Watson, IoT, and data.
Kubermatic provides managed Kubernetes clusters for various public clouds, including AWS and Digital Ocean, as well as on-premises with OpenStack integration.
Kublr offers enterprise-grade secure, scalable, highly reliable Kubernetes clusters on AWS, Azure, GCP, and on-premise. It includes out-of-the-box backup and disaster recovery, multi-cluster centralized logging and monitoring, and built-in alerting.
KubeSail is an easy, free way to try Kubernetes.
Madcore.Ai is devops-focused CLI tool for deploying Kubernetes infrastructure in AWS. Master, auto-scaling group nodes with spot-instances, ingress-ssl-lego, Heapster, and Grafana.
Nutanix Karbon is a multi-cluster, highly available Kubernetes management and operational platform that simplifies the provisioning, operations, and lifecycle management of Kubernetes.
OpenShift Dedicated offers managed Kubernetes clusters powered by OpenShift.
OpenShift Online provides free hosted access for Kubernetes applications.
Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) is a fully-managed, scalable, and highly available service that you can use to deploy your containerized applications to the cloud.
Platform9 offers managed Kubernetes on-premises or on any public cloud, and provides 24/7 health monitoring and alerting. (Kube2go, a web-UI driven Kubernetes cluster deployment service Platform9 released, has been integrated to Platform9 Sandbox.)
Stackpoint.io provides Kubernetes infrastructure automation and management for multiple public clouds.
SysEleven MetaKube offers managed Kubernetes as a service powered on our OpenStack public cloud. It includes lifecycle management, administration dashboards, monitoring, autoscaling and much more.
VEXXHOST VEXXHOST proudly offers Certified Kubernetes on our public cloud, which also happens to be the largest OpenStack public cloud in Canada.
VMware Cloud PKS is an enterprise Kubernetes-as-a-Service offering in the VMware Cloud Services portfolio that provides easy to use, secure by default, cost effective, SaaS-based Kubernetes clusters.
These solutions allow you to create Kubernetes clusters on a range of Cloud IaaS providers with only a few commands. These solutions are actively developed and have active community support.
These solutions allow you to create Kubernetes clusters on your internal, secure, cloud network with only a few commands.
Kubernetes can run on a wide range of Cloud providers and bare-metal environments, and with many base operating systems.
If you can find a guide below that matches your needs, use it.
If you already have a way to configure hosting resources, use kubeadm to bring up a cluster with a single command per machine.
These solutions are combinations of cloud providers and operating systems not covered by the above solutions.
These solutions provide integration with third-party schedulers, resource managers, and/or lower level platforms.
Below is a table of all of the solutions listed above.
IaaS Provider | Config. Mgmt. | OS | Networking | Docs | Support Level |
---|---|---|---|---|---|
Agile Stacks | Terraform | CoreOS | multi-support | docs | Commercial |
Alibaba Cloud Container Service For Kubernetes | ROS | CentOS | flannel/Terway | docs | Commercial |
any | any | multi-support | any CNI | docs | Project (SIG-cluster-lifecycle) |
any | any | any | any | docs | Community (@erictune) |
any | any | any | any | docs | Commercial and Community |
any | RKE | multi-support | flannel or canal | docs | Commercial and Community |
any | Gardener Cluster-Operator | multi-support | multi-support | docs | Project/Community and Commercial |
AppsCode.com | Saltstack | Debian | multi-support | docs | Commercial |
AWS | CoreOS | CoreOS | flannel | docs | Community |
AWS | Saltstack | Debian | AWS | docs | Community (@justinsb) |
AWS | kops | Debian | AWS | docs | Community (@justinsb) |
AWS | Juju | Ubuntu | flannel/calico/canal | docs | Commercial and Community |
Azure | Juju | Ubuntu | flannel/calico/canal | docs | Commercial and Community |
Azure (IaaS) | Ubuntu | Azure | docs | Community (Microsoft) | |
Azure Kubernetes Service | Ubuntu | Azure | docs | Commercial | |
Bare-metal | custom | CentOS | flannel | docs | Community (@coolsvap) |
Bare-metal | custom | Fedora | none | docs | Project |
Bare-metal | custom | Fedora | flannel | docs | Community (@aveshagarwal) |
Bare Metal | Juju | Ubuntu | flannel/calico/canal | docs | Commercial and Community |
Bare-metal | custom | Ubuntu | flannel | docs | Community (@resouer, @WIZARD-CXY) |
CloudStack | Ansible | CoreOS | flannel | docs | Community (@sebgoa) |
DCOS | Marathon | CoreOS/Alpine | custom | docs | Community (Kubernetes-Mesos Authors) |
Digital Rebar | kubeadm | any | metal | docs | Community (@digitalrebar) |
Docker Enterprise | custom | multi-support | multi-support | docs | Commercial |
Giant Swarm | CoreOS | flannel and/or Calico | docs | Commercial | |
GCE | CoreOS | CoreOS | flannel | docs | Community (@pires) |
GCE | Juju | Ubuntu | flannel/calico/canal | docs | Commercial and Community |
GCE | Saltstack | Debian | GCE | docs | Project |
Google Kubernetes Engine | GCE | docs | Commercial | ||
IBM Cloud Kubernetes Service | Ubuntu | IBM Cloud Networking + Calico | docs | Commercial | |
IBM Cloud Kubernetes Service | Ubuntu | calico | docs | Commercial | |
IBM Cloud Private | Ansible | multi-support | multi-support | docs | Commercial and Community |
Kublr | custom | multi-support | multi-support | docs | Commercial |
Kubermatic | multi-support | multi-support | docs | Commercial | |
KVM | custom | Fedora | flannel | docs | Community (@aveshagarwal) |
libvirt | custom | Fedora | flannel | docs | Community (@aveshagarwal) |
lxd | Juju | Ubuntu | flannel/canal | docs | Commercial and Community |
Madcore.Ai | Jenkins DSL | Ubuntu | flannel | docs | Community (@madcore-ai) |
Mirantis Cloud Platform | Salt | Ubuntu | multi-support | docs | Commercial |
Oracle Cloud Infrastructure | Juju | Ubuntu | flannel/calico/canal | docs | Commercial and Community |
Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) | multi-support | docs | Commercial | ||
oVirt | docs | Community (@simon3z) | |||
Platform9 | multi-support | multi-support | docs | Commercial | |
Rackspace | custom | CoreOS | flannel/calico/canal | docs | Commercial |
Red Hat OpenShift | Ansible & CoreOS | RHEL & CoreOS | multi-support | docs | Commercial |
Stackpoint.io | multi-support | multi-support | docs | Commercial | |
Vagrant | CoreOS | CoreOS | flannel | docs | Community (@pires, @AntonioMeireles) |
VMware vSphere | any | multi-support | multi-support | docs | Community |
VMware vSphere | Juju | Ubuntu | flannel/calico/canal | docs | Commercial and Community |
VMware Cloud PKS | Photon OS | Canal | docs | Commercial | |
VMware Enterprise PKS | BOSH | Ubuntu | VMware NSX-T/flannel | docs | Commercial |
VMware Essential PKS | any | multi-support | multi-support | docs | Commercial |
Was this page helpful?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.