WtD: Picking the Right Solution (#3772)

* WtD: Picking the Right Solution

- Comprehensive edit for readability
- Fixes dead and redirecting links
- Fixes headings

* md format change
This commit is contained in:
Ryan McGinnis
2017-05-14 16:03:02 -07:00
committed by Andrew Chen
parent 2ea01f58d0
commit 6e4c5f1abd
+94 -104
View File
@@ -9,154 +9,144 @@ redirect_from:
- "/docs/getting-started-guides/index.html"
---
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.
Kubernetes can run on various 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. Use this guide to choose a solution that fits your needs.
If you just want to "kick the tires" on Kubernetes, we recommend the [local Docker-based solution using MiniKube](#local-machine-solutions).
If you just want to "kick the tires" on Kubernetes, use the [local Docker-based solution using MiniKube](#local-machine-solutions).
When you are ready to scale up to more machines and higher availability, a [Hosted](#hosted-solutions)
solution is the easiest to create and maintain.
When you are ready to scale up to more machines and higher availability, a [hosted solution](#hosted-solutions) is the easiest to create and maintain.
[Turn-key cloud solutions](#turn-key-cloud-solutions) require only a few commands to create
and cover a wider range of cloud providers.
[Turnkey cloud solutions](#turnkey-cloud-solutions) require only a few commands to create
and cover a wide range of cloud providers.
If you already have a way to configure hosting resources, you can use
[kubeadm](/docs/getting-started-guides/kubeadm/) to easily bring up a cluster
with a single command per machine.
If you already have a way to configure hosting resources, use [kubeadm](/docs/getting-started-guides/kubeadm/) to easily bring up a cluster with a single command per machine.
[Custom solutions](#custom-solutions) require more effort to setup but cover and even
they vary from step-by-step instructions to general advice for setting up
[Custom solutions](#custom-solutions) vary from step-by-step instructions to general advice for setting up
a Kubernetes cluster from scratch.
* TOC
{:toc}
### Local-machine Solutions
# Local-machine Solutions
[Minikube](/docs/getting-started-guides/minikube/) is the recommended method for you to create a single node kubernetes cluster locally for purposes of development and testing. Setup is completely automated and doesn't require a cloud provider account.
* [Minikube](/docs/getting-started-guides/minikube/) is the recommended 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.
Use the [Minikube getting started guide](/docs/getting-started-guides/minikube/) to try it out.
* [Ubuntu on LXD](/docs/getting-started-guides/ubuntu/local) supports a nine-instance deployment on localhost.
[Ubuntu on LXD](/docs/getting-started-guides/ubuntu/local) - Ubuntu supports a 9-instance deployment on localhost via LXD.
# Hosted Solutions
### Hosted Solutions
* [Google Container Engine](https://cloud.google.com/container-engine) offers managed Kubernetes clusters.
[Google Container Engine](https://cloud.google.com/container-engine) offers managed Kubernetes
clusters.
* [Azure Container Service](https://azure.microsoft.com/en-us/services/container-service/) can easily deploy Kubernetes clusters.
[Azure Container Service](https://azure.microsoft.com/en-us/services/container-service/) can easily deploy Kubernetes
clusters.
* [Stackpoint.io](https://stackpoint.io) provides Kubernetes infrastructure automation and management for multiple public clouds.
[Stackpoint.io](https://stackpoint.io) provides Kubernetes infrastructure automation and management for multiple public clouds.
* [AppsCode.com](https://appscode.com/products/cloud-deployment/) provides managed Kubernetes clusters for various public clouds, including AWS and Google Cloud Platform.
[AppsCode.com](https://appscode.com/products/cloud-deployment/) provides managed Kubernetes clusters for various public clouds (including AWS and Google Cloud Platform).
* [KCluster.io](https://kcluster.io) provides highly available and scalable managed Kubernetes clusters for AWS.
[KCluster.io](https://kcluster.io) provides highly available and scalable managed Kubernetes clusters for AWS.
* [KUBE2GO.io](https://kube2go.io) get started with highly available Kubernetes clusters on multiple public clouds along with useful tools for development, debugging, monitoring.
[KUBE2GO.io](https://kube2go.io) get started with highly available Kubernetes clusters on multiple public clouds along with useful tools for development, debugging, monitoring.
* [Madcore.Ai](https://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.
[Madcore.Ai](https://madcore.ai) CLI tool to deploy Kubernetes infrastructure in AWS with focus on devops. Master, auto-scaling-group nodes with spot-instances, ingress-ssl-lego, Heapster, Grafana. Based on latest containers.
* [Platform9](https://platform9.com/products/kubernetes/) offers managed Kubernetes on-premises or on any public cloud, and provides 24/7 health monitoring and alerting.
[Platform9](https://platform9.com/products/kubernetes/) offers managed Kubernetes on-premises or any public cloud, and provides 24/7 health monitoring and alerting.
* [OpenShift Dedicated](https://www.openshift.com/dedicated/) offers managed Kubernetes clusters powered by OpenShift.
[OpenShift Dedicated](https://www.openshift.com/dedicated/) offers managed Kubernetes clusters powered by OpenShift and [OpenShift Online](https://www.openshift.com/features/) provides free hosted access for Kubernetes applications.
* [OpenShift Online](https://www.openshift.com/features/) provides free hosted access for Kubernetes applications.
[IBM Bluemix Container Service](https://console.ng.bluemix.net/docs/containers/container_index.html) offers managed Kubernetes clusters (currently in beta).
* [IBM Bluemix Container Service](https://console.ng.bluemix.net/docs/containers/container_index.html) offers managed Kubernetes clusters. Currently in beta.
### Turn-key Cloud Solutions
# Turnkey 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.
few commands. These solutions are actively developed and have active community support.
- [GCE](/docs/getting-started-guides/gce)
- [AWS](/docs/getting-started-guides/aws)
- [Azure](/docs/getting-started-guides/azure)
- [Tectonic by CoreOS](https://coreos.com/tectonic)
- [CenturyLink Cloud](/docs/getting-started-guides/clc)
- [IBM Bluemix](https://github.com/patrocinio/kubernetes-softlayer)
- [Stackpoint.io](/docs/getting-started-guides/stackpoint/)
- [KUBE2GO.io](https://kube2go.io/)
- [Madcore.Ai](https://madcore.ai/)
* [Google Compute Engine (GCE)](/docs/getting-started-guides/gce)
* [AWS](/docs/getting-started-guides/aws)
* [Azure](/docs/getting-started-guides/azure)
* [Tectonic by CoreOS](https://coreos.com/tectonic)
* [CenturyLink Cloud](/docs/getting-started-guides/clc)
* [IBM Bluemix](https://github.com/patrocinio/kubernetes-softlayer)
* [Stackpoint.io](/docs/getting-started-guides/stackpoint/)
* [KUBE2GO.io](https://kube2go.io/)
* [Madcore.Ai](https://madcore.ai/)
### Custom Solutions
# 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
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, either because you
have special requirements, or just because you want to understand what is underneath a Kubernetes
cluster, try the [Getting Started from Scratch](/docs/getting-started-guides/scratch) guide.
If you are interested in supporting Kubernetes on a new platform, check out our [advice for
writing a new solution](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/writing-a-getting-started-guide.md).
If you are interested in supporting Kubernetes on a new platform, see
[Writing a Getting Started Guide](https://github.com/kubernetes/community/blob/master/contributors/devel/writing-a-getting-started-guide.md).
#### Universal
## Universal
If you already have a way to configure hosting resources, you can use
If you already have a way to configure hosting resources, use
[kubeadm](/docs/getting-started-guides/kubeadm/) to easily bring up a cluster
with a single command per machine.
#### Cloud
## Cloud
These solutions are combinations of cloud provider and OS not covered by the above solutions.
These solutions are combinations of cloud providers and operating systems not covered by the above solutions.
- [AWS + CoreOS](/docs/getting-started-guides/coreos)
- [GCE + CoreOS](/docs/getting-started-guides/coreos)
- [Ubuntu + AWS/GCE/Rackspace/Joyent](/docs/getting-started-guides/ubuntu/)
- [Rackspace + CoreOS](/docs/getting-started-guides/rackspace)
* [CoreOS on AWS or GCE](/docs/getting-started-guides/coreos)
* [Kubernetes on Ubuntu](/docs/getting-started-guides/ubuntu/)
* [CoreOS on Rackspace](/docs/getting-started-guides/rackspace)
#### On-Premises VMs
## On-Premises VMs
- [Vagrant](/docs/getting-started-guides/coreos) (uses CoreOS and flannel)
- [CloudStack](/docs/getting-started-guides/cloudstack) (uses Ansible, CoreOS and flannel)
- [Vmware vSphere](/docs/getting-started-guides/vsphere) (uses Debian)
- [Vmware Photon Controller](/docs/getting-started-guides/photon-controller) (uses Debian)
- [Vmware vSphere, OpenStack, or Bare Metal](/docs/getting-started-guides/ubuntu/) (uses Juju, Ubuntu and flannel)
- [Vmware](/docs/getting-started-guides/coreos) (uses CoreOS and flannel)
- [libvirt-coreos](/docs/getting-started-guides/libvirt-coreos) (uses CoreOS)
- [oVirt](/docs/getting-started-guides/ovirt)
- [OpenStack Heat](/docs/getting-started-guides/openstack-heat) (uses CentOS and flannel)
- [libvirt](/docs/getting-started-guides/fedora/flannel_multi_node_cluster) (uses Fedora and flannel)
- [KVM](/docs/getting-started-guides/fedora/flannel_multi_node_cluster) (uses Fedora and flannel)
* [Vagrant](/docs/getting-started-guides/coreos) (uses CoreOS and flannel)
* [CloudStack](/docs/getting-started-guides/cloudstack) (uses Ansible, CoreOS and flannel)
* [Vmware vSphere](/docs/getting-started-guides/vsphere) (uses Debian)
* [Vmware Photon Controller](/docs/getting-started-guides/photon-controller) (uses Debian)
* [Vmware vSphere, OpenStack, or Bare Metal](/docs/getting-started-guides/ubuntu/) (uses Juju, Ubuntu and flannel)
* [Vmware](/docs/getting-started-guides/coreos) (uses CoreOS and flannel)
* [CoreOS on libvirt](/docs/getting-started-guides/libvirt-coreos) (uses CoreOS)
* [oVirt](/docs/getting-started-guides/ovirt)
* [OpenStack Heat](/docs/getting-started-guides/openstack-heat) (uses CentOS and flannel)
* [Fedora (Multi Node)](/docs/getting-started-guides/fedora/flannel_multi_node_cluster) (uses Fedora and flannel)
#### Bare Metal
## Bare Metal
- [Offline](/docs/getting-started-guides/coreos/bare_metal_offline) (no internet required. Uses CoreOS and Flannel)
- [fedora/fedora_ansible_config](/docs/getting-started-guides/fedora/fedora_ansible_config)
- [Fedora single node](/docs/getting-started-guides/fedora/fedora_manual_config)
- [Fedora multi node](/docs/getting-started-guides/fedora/flannel_multi_node_cluster)
- [Centos](/docs/getting-started-guides/centos/centos_manual_config)
- [Bare Metal with Ubuntu](/docs/getting-started-guides/ubuntu/)
- [Ubuntu Manual](/docs/getting-started-guides/ubuntu/manual)
- [CoreOS](/docs/getting-started-guides/coreos)
* [Offline](/docs/getting-started-guides/coreos/bare_metal_offline) (no internet required. Uses CoreOS and Flannel)
* [Fedora via Ansible](/docs/getting-started-guides/fedora/fedora_ansible_config)
* [Fedora (Single Node)](/docs/getting-started-guides/fedora/fedora_manual_config)
* [Fedora (Multi Node)](/docs/getting-started-guides/fedora/flannel_multi_node_cluster)
* [CentOS](/docs/getting-started-guides/centos/centos_manual_config)
* [Kubernetes on Ubuntu](/docs/getting-started-guides/ubuntu/)
* [Manually Deploying Kubernetes on Ubuntu Nodes](/docs/getting-started-guides/ubuntu/manual)
* [CoreOS on AWS or GCE](/docs/getting-started-guides/coreos)
#### Integrations
## Integrations
These solutions provide integration with 3rd party schedulers, resource managers, and/or lower level platforms.
These solutions provide integration with third-party schedulers, resource managers, and/or lower level platforms.
- [Kubernetes on Mesos](/docs/getting-started-guides/mesos)
- Instructions specify GCE, but are generic enough to be adapted to most existing Mesos clusters
- [Kubernetes on DCOS](/docs/getting-started-guides/dcos)
- Community Edition DCOS uses AWS
- Enterprise Edition DCOS supports cloud hosting, on-premise VMs, and bare metal
* [Kubernetes on Mesos](/docs/getting-started-guides/mesos)
* Instructions specify GCE, but are generic enough to be adapted to most existing Mesos clusters
* [DCOS](/docs/getting-started-guides/dcos)
* Community Edition DCOS uses AWS
* Enterprise Edition DCOS supports cloud hosting, on-premise VMs, and bare metal
## Table of Solutions
# Table of Solutions
Here are all the solutions mentioned above in table form.
Below is a table of all of the solutions listed above.
IaaS Provider | Config. Mgmt | OS | Networking | Docs | Support Level
IaaS Provider | Config. Mgmt. | OS | Networking | Docs | Support Level
-------------------- | ------------ | ------ | ---------- | --------------------------------------------- | ----------------------------
any | any | multi-support | any CNI | [docs](https://kubernetes.io/docs/getting-started-guides/kubeadm/) | Project ([SIG-cluster-lifecycle](https://github.com/kubernetes/community/tree/master/sig-cluster-lifecycle))
GKE | | | GCE | [docs](https://cloud.google.com/container-engine) | Commercial
Stackpoint.io | | multi-support | multi-support | [docs](http://www.stackpointcloud.com) | Commercial
Stackpoint.io | | multi-support | multi-support | [docs](https://stackpoint.io/) | Commercial
AppsCode.com | Saltstack | Debian | multi-support | [docs](https://appscode.com/products/cloud-deployment/) | Commercial
KCluster.io | | multi-support | multi-support | [docs](https://kcluster.io) | Commercial
KUBE2GO.io | | multi-support | multi-support | [docs](https://kube2go.io) | Commercial
Madcore.Ai | Jenkins DSL | Ubuntu | flannel | [docs](https://madcore.ai) | Community ([@madcore-ai](https://github.com/madcore-ai))
Platform9 | | multi-support | multi-support | [docs](https://platform9.com/products/kubernetes/) | Commercial
Platform9 | | multi-support | multi-support | [docs](https://platform9.com/managed-kubernetes/) | Commercial
GCE | Saltstack | Debian | GCE | [docs](/docs/getting-started-guides/gce) | Project
Azure Container Service | | Ubuntu | Azure | [docs](https://azure.microsoft.com/en-us/services/container-service/) | Commercial
Azure (IaaS) | | Ubuntu | Azure | [docs](/docs/getting-started-guides/azure) | [Community (Microsoft)](https://github.com/Azure/acs-engine)
@@ -190,25 +180,25 @@ OpenStack Heat | Saltstack | CentOS | Neutron + flannel hostgw | [docs]
Rackspace | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/rackspace) | Community ([@doublerr](https://github.com/doublerr))
any | any | any | any | [docs](/docs/getting-started-guides/scratch) | Community ([@erictune](https://github.com/erictune))
*Note*: The above table is ordered by version test/used in notes followed by support level.
**Note**: The above table is ordered by version test/used in nodes, followed by support level.
Definition of columns
## 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
* **IaaS Provider** is the product or organization which 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 on the
nodes.
- **Networking** is what implements the [networking model](/docs/admin/networking). 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
* **Networking** is what implements the [networking model](/docs/concepts/cluster-administration/networking/). Those with networking type
_none_ may not support more than a single node, or may support multiple VM nodes in a single 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
* **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.
* **Commercial**: A commercial offering with its own support arrangements.
* **Community**: Actively supported by community contributions. May not work with recent releases of Kubernetes.
* **Inactive**: Not actively maintained. Not recommended for first-time Kubernetes users, and may be removed.
* **Notes** has other relevant information, such as the version of Kubernetes used.
<!-- reference style links below here -->