Skip to content

Latest commit

 

History

History

getting-started-guides

WARNING WARNING WARNING WARNING WARNING

PLEASE NOTE: This document applies to the HEAD of the source tree

If you are using a released version of Kubernetes, you should refer to the docs that go with that version.

The latest release of this document can be found [here](http://releases.k8s.io/release-1.1/docs/getting-started-guides/README.md).

Documentation for other releases can be found at releases.k8s.io.

Creating a Kubernetes Cluster

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.

Table of Contents

Picking the Right Solution

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

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:

Hosted Solutions

Google Container Engine offers managed Kubernetes clusters.

Turn-key Cloud Solutions

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.

Custom Solutions

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.

Cloud

These solutions are combinations of cloud provider and OS not covered by the above solutions.

On-Premises VMs

Bare Metal

Integrations

These solutions provide integration with 3rd party schedulers, resource managers, and/or lower level platforms.

  • Kubernetes on Mesos
    • Instructions specify GCE, but are generic enough to be adapted to most existing Mesos clusters
  • Kubernetes on DCOS
    • Community Edition DCOS uses AWS
    • Enterprise Edition DCOS supports cloud hosting, on-premise VMs, and bare metal

Table of Solutions

Here are all the solutions mentioned above in table form.

IaaS Provider Config. Mgmt OS Networking Docs Conforms Support Level
GKE GCE docs Commercial
Vagrant Saltstack Fedora flannel docs Project
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 Flannel N/A local docs Project (@brendandburns)
Bare-metal Ansible Fedora flannel docs Project
Digital Ocean custom Fedora Calico docs Community (@djosborne)
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, @dalanlan, @WIZARD-CXY)
Local none docs Community (@preillyme)
libvirt/KVM CoreOS CoreOS libvirt/KVM docs Community (@lhuard1A)
oVirt docs Community (@simon3z)
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:

  • IaaS Provider is who/what provides the virtual or physical machines (nodes) that Kubernetes runs on.
  • OS is the base operating system of the nodes.
  • Config. Mgmt is the configuration management system that helps install and maintain Kubernetes software on the nodes.
  • Networking is what implements the networking model. Those with networking type none may not support more than one node, or may support multiple VM nodes only in the same physical node.
  • Conformance indicates whether a cluster created with this configuration has passed the project's conformance tests for supporting the API and base features of Kubernetes v1.0.0.
  • Support Levels
    • Project: Kubernetes Committers regularly use this configuration, so it usually works with the latest release of Kubernetes.
    • Commercial: A commercial offering with its own support arrangements.
    • Community: Actively supported by community contributions. May not work with more recent releases of Kubernetes.
    • Inactive: No active maintainer. Not recommended for first-time Kubernetes users, and may be deleted soon.
  • Notes is relevant information such as the version of Kubernetes used.

Analytics