Kubernetes can run on a range of platforms, from your laptop, to VMs on a cloud provider, to 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. We’ll guide you in picking a solution that fits for your needs.
If you just want to “kick the tires” on Kubernetes, we recommend the local Docker-based solution.
The local Docker-based solution is one of several Local cluster solutions that are quick to set up, but are limited to running on one machine.
When you are ready to scale up to more machines and higher availability, a Hosted solution is the easiest to create and maintain.
Turn-key cloud solutions require only a few commands to create and cover a wider range of cloud providers.
Custom solutions require more effort to setup but cover and even they vary from step-by-step instructions to general advice for setting up a Kubernetes cluster from scratch.
Local-machine solutions create a single cluster with one or more Kubernetes nodes on a single physical machine. Setup is completely automated and doesn’t require a cloud provider account. But their size and availability is limited to that of a single machine.
The local-machine solutions are:
Google Container Engine offers managed Kubernetes clusters.
These solutions allow you to create Kubernetes clusters on a range of Cloud IaaS providers with only a few commands, and have active community support.
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. It may be a little out of date, but it will be easier than starting from scratch. If you do want to start from scratch because you have special requirements or just because you want to understand what is underneath a Kubernetes cluster, try the Getting Started from Scratch guide.
If you are interested in supporting Kubernetes on a new platform, check out our advice for writing a new solution.
These solutions are combinations of cloud provider and OS not covered by the above solutions.
These solutions provide integration with 3rd party schedulers, resource managers, and/or lower level platforms.
Here are all the solutions mentioned above in table form.
IaaS Provider | Config. Mgmt | OS | Networking | Docs | Conforms | Support Level |
---|---|---|---|---|---|---|
GKE | GCE | docs | ‘œ“ | Commercial | ||
GCE | Saltstack | Debian | GCE | docs | ‘œ“ | Project |
Azure | CoreOS | CoreOS | Weave | docs | Community (@errordeveloper, @squillace, @chanezon, @crossorigin) | |
Docker Single Node | custom | N/A | local | docs | Project (@brendandburns) | |
Docker Multi Node | custom | N/A | flannel | docs | Project (@brendandburns) | |
Bare-metal | Ansible | Fedora | flannel | docs | Project | |
Bare-metal | custom | Fedora | none | docs | Project | |
Bare-metal | custom | Fedora | flannel | docs | Community (@aveshagarwal) | |
libvirt | custom | Fedora | flannel | docs | Community (@aveshagarwal) | |
KVM | custom | Fedora | flannel | docs | Community (@aveshagarwal) | |
Mesos/Docker | custom | Ubuntu | Docker | docs | Community (Kubernetes-Mesos Authors) | |
Mesos/GCE | docs | Community (Kubernetes-Mesos Authors) | ||||
DCOS | Marathon | CoreOS/Alpine | custom | docs | Community (Kubernetes-Mesos Authors) | |
AWS | CoreOS | CoreOS | flannel | docs | Community | |
GCE | CoreOS | CoreOS | flannel | docs | Community (@pires) | |
Vagrant | CoreOS | CoreOS | flannel | docs | Community (@pires, @AntonioMeireles) | |
Bare-metal (Offline) | CoreOS | CoreOS | flannel | docs | Community (@jeffbean) | |
Bare-metal | CoreOS | CoreOS | Calico | docs | Community (@caseydavenport) | |
CloudStack | Ansible | CoreOS | flannel | docs | Community (@runseb) | |
Vmware | Debian | OVS | docs | Community (@pietern) | ||
Bare-metal | custom | CentOS | none | docs | Community (@coolsvap) | |
AWS | Juju | Ubuntu | flannel | docs | Community ( @whit, @matt, @chuck ) | |
OpenStack/HPCloud | Juju | Ubuntu | flannel | docs | Community ( @whit, @matt, @chuck ) | |
Joyent | Juju | Ubuntu | flannel | docs | Community ( @whit, @matt, @chuck ) | |
AWS | Saltstack | Ubuntu | OVS | docs | Community (@justinsb) | |
Bare-metal | custom | Ubuntu | Calico | docs | Community (@djosborne) | |
Bare-metal | custom | Ubuntu | flannel | docs | Community (@resouer, @WIZARD-CXY) | |
libvirt/KVM | CoreOS | CoreOS | libvirt/KVM | docs | Community (@lhuard1A) | |
oVirt | docs | Community (@simon3z) | ||||
OpenStack Heat | Saltstack | CentOS | Neutron + flannel hostgw | docs | Community (@FujitsuEnablingSoftwareTechnologyGmbH) | |
Rackspace | CoreOS | CoreOS | flannel | docs | Community (@doublerr) | |
any | any | any | any | docs | Community (@erictune) |
Note: The above table is ordered by version test/used in notes followed by support level.
Definition of columns: