2017-01-05 21:52:51 +08:00
![Kubernetes Logo ](https://s28.postimg.org/lf3q4ocpp/k8s.png )
2016-07-06 23:34:16 +08:00
2017-03-23 04:01:44 +08:00
## Deploy a production ready kubernetes cluster
2016-07-06 23:34:16 +08:00
2017-10-18 17:32:47 +08:00
If you have questions, join us on the [kubernetes slack ](https://kubernetes.slack.com ), channel ** #kubespray **.
2016-07-06 23:34:16 +08:00
2016-11-29 19:16:30 +08:00
- Can be deployed on **AWS, GCE, Azure, OpenStack or Baremetal**
2016-07-06 23:34:16 +08:00
- **High available** cluster
- **Composable** (Choice of the network plugin for instance)
- Support most popular **Linux distributions**
- **Continuous integration tests**
To deploy the cluster you can use :
2017-06-24 00:35:10 +08:00
[**kubespray-cli** ](https://github.com/kubespray/kubespray-cli ) < br >
2017-06-17 01:25:46 +08:00
**Ansible** usual commands and [**inventory builder** ](https://github.com/kubernetes-incubator/kubespray/blob/master/contrib/inventory_builder/inventory.py ) < br >
2016-07-06 23:34:16 +08:00
**vagrant** by simply running `vagrant up` (for tests purposes) < br >
* [Requirements ](#requirements )
2017-06-17 01:25:46 +08:00
* [Kubespray vs ... ](docs/comparisons.md )
2016-07-06 23:34:16 +08:00
* [Getting started ](docs/getting-started.md )
2017-01-05 21:52:51 +08:00
* [Ansible inventory and tags ](docs/ansible.md )
2017-06-23 00:29:48 +08:00
* [Integration with existing ansible repo ](docs/integration.md )
2017-01-05 21:52:51 +08:00
* [Deployment data variables ](docs/vars.md )
* [DNS stack ](docs/dns-stack.md )
* [HA mode ](docs/ha-mode.md )
* [Network plugins ](#network-plugins )
2016-07-06 23:34:16 +08:00
* [Vagrant install ](docs/vagrant.md )
* [CoreOS bootstrap ](docs/coreos.md )
2017-10-16 16:02:12 +08:00
* [Debian Jessie setup ](docs/debian.md )
2017-01-05 21:52:51 +08:00
* [Downloaded artifacts ](docs/downloads.md )
2016-07-06 23:34:16 +08:00
* [Cloud providers ](docs/cloud.md )
2016-08-11 17:33:29 +08:00
* [OpenStack ](docs/openstack.md )
2016-08-24 21:56:42 +08:00
* [AWS ](docs/aws.md )
2016-11-29 19:16:30 +08:00
* [Azure ](docs/azure.md )
2017-07-12 17:01:06 +08:00
* [vSphere ](docs/vsphere.md )
2017-01-05 21:52:51 +08:00
* [Large deployments ](docs/large-deployments.md )
* [Upgrades basics ](docs/upgrades.md )
2016-07-06 23:34:16 +08:00
* [Roadmap ](docs/roadmap.md )
Supported Linux distributions
===============
2017-01-05 21:52:51 +08:00
* **Container Linux by CoreOS**
* **Debian** Jessie
* **Ubuntu** 16.04
2016-07-06 23:34:16 +08:00
* **CentOS/RHEL** 7
2017-01-05 21:52:51 +08:00
Note: Upstart/SysV init based OS types are not supported.
Versions of supported components
--------------------------------
2016-07-06 23:34:16 +08:00
2017-05-23 09:32:28 +08:00
2017-08-25 02:36:53 +08:00
[kubernetes ](https://github.com/kubernetes/kubernetes/releases ) v1.7.3 < br >
[etcd ](https://github.com/coreos/etcd/releases ) v3.2.4 < br >
2017-07-29 15:57:45 +08:00
[flanneld ](https://github.com/coreos/flannel/releases ) v0.8.0 < br >
2017-08-29 04:23:29 +08:00
[calico ](https://docs.projectcalico.org/v2.5/releases/ ) v2.5.0 < br >
2017-01-05 21:52:51 +08:00
[canal ](https://github.com/projectcalico/canal ) (given calico/flannel versions) < br >
2017-07-27 20:40:52 +08:00
[weave ](http://weave.works/ ) v2.0.1 < br >
2017-08-25 02:36:53 +08:00
[docker ](https://www.docker.com/ ) v1.13 (see note)< br >
2017-05-29 02:55:44 +08:00
[rkt ](https://coreos.com/rkt/docs/latest/ ) v1.21.0 (see Note 2)< br >
2016-07-06 23:34:16 +08:00
2017-05-29 02:55:44 +08:00
Note: kubernetes doesn't support newer docker versions. Among other things kubelet currently breaks on docker's non-standard version numbering (it no longer uses semantic versioning). To ensure auto-updates don't break your cluster look into e.g. yum versionlock plugin or apt pin).
Note 2: rkt support as docker alternative is limited to control plane (etcd and
2017-01-05 21:52:51 +08:00
kubelet). Docker is still used for Kubernetes cluster workloads and network
plugins' related OS services. Also note, only one of the supported network
plugins can be deployed for a given single cluster.
2016-07-06 23:34:16 +08:00
Requirements
--------------
2017-04-26 20:11:13 +08:00
* **Ansible v2.3 (or newer) and python-netaddr is installed on the machine
2017-02-20 15:39:51 +08:00
that will run Ansible commands**
2017-04-26 20:11:13 +08:00
* **Jinja 2.9 (or newer) is required to run the Ansible Playbooks**
2016-07-06 23:34:16 +08:00
* The target servers must have **access to the Internet** in order to pull docker images.
2017-02-20 15:39:51 +08:00
* The target servers are configured to allow **IPv4 forwarding** .
2017-02-20 15:52:21 +08:00
* **Your ssh key must be copied** to all the servers part of your inventory.
2016-07-06 23:34:16 +08:00
* The **firewalls are not managed** , you'll need to implement your own rules the way you used to.
2017-01-05 21:52:51 +08:00
in order to avoid any issue during deployment you should disable your firewall.
2016-07-06 23:34:16 +08:00
## Network plugins
2017-08-10 03:28:33 +08:00
You can choose between 4 network plugins. (default: `calico` , except Vagrant uses `flannel` )
2016-07-06 23:34:16 +08:00
* [**flannel** ](docs/flannel.md ): gre/vxlan (layer 2) networking.
* [**calico** ](docs/calico.md ): bgp (layer 3) networking.
2017-01-05 21:52:51 +08:00
* [**canal** ](https://github.com/projectcalico/canal ): a composition of calico and flannel plugins.
2016-07-06 23:34:16 +08:00
2017-07-31 22:33:00 +08:00
* [**weave** ](docs/weave.md ): Weave is a lightweight container overlay network that doesn't require an external K/V database cluster. < br >
2017-01-05 21:52:51 +08:00
(Please refer to `weave` [troubleshooting documentation ](http://docs.weave.works/weave/latest_release/troubleshooting.html )).
2016-07-06 23:34:16 +08:00
2017-01-05 21:52:51 +08:00
The choice is defined with the variable `kube_network_plugin` . There is also an
option to leverage built-in cloud provider networking instead.
See also [Network checker ](docs/netcheck.md ).
2016-07-06 23:34:16 +08:00
2017-03-06 19:24:02 +08:00
## Community docs and resources
2017-06-24 00:35:10 +08:00
- [kubernetes.io/docs/getting-started-guides/kubespray/ ](https://kubernetes.io/docs/getting-started-guides/kubespray/ )
- [kubespray, monitoring and logging ](https://github.com/gregbkr/kubernetes-kargo-logging-monitoring ) by @gregbkr
2017-03-06 19:24:02 +08:00
- [Deploy Kubernetes w/ Ansible & Terraform ](https://rsmitty.github.io/Terraform-Ansible-Kubernetes/ ) by @rsmitty
2017-06-24 00:35:10 +08:00
- [Deploy a Kubernetes Cluster with Kubespray (video) ](https://www.youtube.com/watch?v=N9q51JgbWu8 )
2017-03-06 19:24:02 +08:00
2017-06-17 01:25:46 +08:00
## Tools and projects on top of Kubespray
2017-03-06 19:24:02 +08:00
- [Digital Rebar ](https://github.com/digitalrebar/digitalrebar )
2017-06-24 00:35:10 +08:00
- [Kubespray-cli ](https://github.com/kubespray/kubespray-cli )
2017-03-06 19:24:02 +08:00
- [Fuel-ccp-installer ](https://github.com/openstack/fuel-ccp-installer )
2017-06-17 01:25:46 +08:00
- [Terraform Contrib ](https://github.com/kubernetes-incubator/kubespray/tree/master/contrib/terraform )
2017-03-06 19:24:02 +08:00
2016-07-06 23:34:16 +08:00
## CI Tests
2017-01-05 21:52:51 +08:00
![Gitlab Logo ](https://s27.postimg.org/wmtaig1wz/gitlabci.png )
2016-07-06 23:34:16 +08:00
2017-06-24 00:35:10 +08:00
[![Build graphs ](https://gitlab.com/kubespray-ci/kubernetes-incubator__kubespray/badges/master/build.svg )](https://gitlab.com/kubespray-ci/kubernetes-incubator__kubespray/pipelines) </ br >
2016-07-06 23:34:16 +08:00
2017-03-06 19:24:02 +08:00
CI/end-to-end tests sponsored by Google (GCE), DigitalOcean, [teuto.net ](https://teuto.net/ ) (openstack).
2017-01-05 21:52:51 +08:00
See the [test matrix ](docs/test_cases.md ) for details.