2017-01-05 13:52:51 +00:00
![Kubernetes Logo ](https://s28.postimg.org/lf3q4ocpp/k8s.png )
2016-07-06 15:34:16 +00:00
2017-03-22 20:01:44 +00:00
## Deploy a production ready kubernetes cluster
2016-07-06 15:34:16 +00:00
2016-12-04 08:14:15 +00:00
If you have questions, join us on the [kubernetes slack ](https://slack.k8s.io ), channel ** #kargo **.
2016-07-06 15:34:16 +00:00
2016-11-29 11:16:30 +00:00
- Can be deployed on **AWS, GCE, Azure, OpenStack or Baremetal**
2016-07-06 15:34:16 +00: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 :
2016-12-04 08:15:16 +00:00
[**kargo-cli** ](https://github.com/kubespray/kargo-cli ) < br >
2017-01-05 13:52:51 +00:00
**Ansible** usual commands and [**inventory builder** ](https://github.com/kubernetes-incubator/kargo/blob/master/contrib/inventory_builder/inventory.py ) < br >
2016-07-06 15:34:16 +00:00
**vagrant** by simply running `vagrant up` (for tests purposes) < br >
* [Requirements ](#requirements )
2017-01-05 13:52:51 +00:00
* [Kargo vs ... ](docs/comparisons.md )
2016-07-06 15:34:16 +00:00
* [Getting started ](docs/getting-started.md )
2017-01-05 13:52:51 +00:00
* [Ansible inventory and tags ](docs/ansible.md )
2017-06-22 16:29:48 +00:00
* [Integration with existing ansible repo ](docs/integration.md )
2017-01-05 13:52:51 +00: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 15:34:16 +00:00
* [Vagrant install ](docs/vagrant.md )
* [CoreOS bootstrap ](docs/coreos.md )
2017-01-05 13:52:51 +00:00
* [Downloaded artifacts ](docs/downloads.md )
2016-07-06 15:34:16 +00:00
* [Cloud providers ](docs/cloud.md )
2016-08-11 09:33:29 +00:00
* [OpenStack ](docs/openstack.md )
2016-08-24 13:56:42 +00:00
* [AWS ](docs/aws.md )
2016-11-29 11:16:30 +00:00
* [Azure ](docs/azure.md )
2017-01-05 13:52:51 +00:00
* [Large deployments ](docs/large-deployments.md )
* [Upgrades basics ](docs/upgrades.md )
2016-07-06 15:34:16 +00:00
* [Roadmap ](docs/roadmap.md )
Supported Linux distributions
===============
2017-01-05 13:52:51 +00:00
* **Container Linux by CoreOS**
* **Debian** Jessie
* **Ubuntu** 16.04
2016-07-06 15:34:16 +00:00
* **CentOS/RHEL** 7
2017-01-05 13:52:51 +00:00
Note: Upstart/SysV init based OS types are not supported.
Versions of supported components
--------------------------------
2016-07-06 15:34:16 +00:00
2017-05-23 01:32:28 +00:00
2017-05-23 01:30:03 +00:00
[kubernetes ](https://github.com/kubernetes/kubernetes/releases ) v1.6.4 < br >
2017-04-11 02:42:35 +00:00
[etcd ](https://github.com/coreos/etcd/releases ) v3.0.17 < br >
2016-10-12 19:54:54 +00:00
[flanneld ](https://github.com/coreos/flannel/releases ) v0.6.2 < br >
2017-01-05 13:52:51 +00:00
[calicoctl ](https://github.com/projectcalico/calico-docker/releases ) v0.23.0 < br >
[canal ](https://github.com/projectcalico/canal ) (given calico/flannel versions) < br >
2017-02-06 10:32:19 +00:00
[weave ](http://weave.works/ ) v1.8.2 < br >
2017-05-28 18:55:44 +00:00
[docker ](https://www.docker.com/ ) v1.13.1 (see note)< br >
[rkt ](https://coreos.com/rkt/docs/latest/ ) v1.21.0 (see Note 2)< br >
2016-07-06 15:34:16 +00:00
2017-05-28 18:55:44 +00: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 13:52:51 +00: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 15:34:16 +00:00
Requirements
--------------
2017-04-26 12:11:13 +00:00
* **Ansible v2.3 (or newer) and python-netaddr is installed on the machine
2017-02-20 07:39:51 +00:00
that will run Ansible commands**
2017-04-26 12:11:13 +00:00
* **Jinja 2.9 (or newer) is required to run the Ansible Playbooks**
2016-07-06 15:34:16 +00:00
* The target servers must have **access to the Internet** in order to pull docker images.
2017-02-20 07:39:51 +00:00
* The target servers are configured to allow **IPv4 forwarding** .
2017-02-20 07:52:21 +00:00
* **Your ssh key must be copied** to all the servers part of your inventory.
2016-07-06 15:34:16 +00:00
* The **firewalls are not managed** , you'll need to implement your own rules the way you used to.
2017-01-05 13:52:51 +00:00
in order to avoid any issue during deployment you should disable your firewall.
2016-07-06 15:34:16 +00:00
## Network plugins
2017-02-15 13:15:22 +00:00
You can choose between 4 network plugins. (default: `calico` )
2016-07-06 15:34:16 +00:00
* [**flannel** ](docs/flannel.md ): gre/vxlan (layer 2) networking.
* [**calico** ](docs/calico.md ): bgp (layer 3) networking.
2017-01-05 13:52:51 +00:00
* [**canal** ](https://github.com/projectcalico/canal ): a composition of calico and flannel plugins.
2016-07-06 15:34:16 +00:00
2017-01-05 13:52:51 +00:00
* **weave**: Weave is a lightweight container overlay network that doesn't require an external K/V database cluster. < br >
(Please refer to `weave` [troubleshooting documentation ](http://docs.weave.works/weave/latest_release/troubleshooting.html )).
2016-07-06 15:34:16 +00:00
2017-01-05 13:52:51 +00: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 15:34:16 +00:00
2017-03-06 11:24:02 +00:00
## Community docs and resources
- [kubernetes.io/docs/getting-started-guides/kargo/ ](https://kubernetes.io/docs/getting-started-guides/kargo/ )
- [kargo, monitoring and logging ](https://github.com/gregbkr/kubernetes-kargo-logging-monitoring ) by @gregbkr
- [Deploy Kubernetes w/ Ansible & Terraform ](https://rsmitty.github.io/Terraform-Ansible-Kubernetes/ ) by @rsmitty
- [Deploy a Kubernets Cluster with Kargo (video) ](https://www.youtube.com/watch?v=N9q51JgbWu8 )
## Tools and projects on top of Kargo
- [Digital Rebar ](https://github.com/digitalrebar/digitalrebar )
- [Kargo-cli ](https://github.com/kubespray/kargo-cli )
- [Fuel-ccp-installer ](https://github.com/openstack/fuel-ccp-installer )
- [Terraform Contrib ](https://github.com/kubernetes-incubator/kargo/tree/master/contrib/terraform )
2016-07-06 15:34:16 +00:00
## CI Tests
2017-01-05 13:52:51 +00:00
![Gitlab Logo ](https://s27.postimg.org/wmtaig1wz/gitlabci.png )
2016-07-06 15:34:16 +00:00
2017-01-05 13:52:51 +00:00
[![Build graphs ](https://gitlab.com/kargo-ci/kubernetes-incubator__kargo/badges/master/build.svg )](https://gitlab.com/kargo-ci/kubernetes-incubator__kargo/pipelines) </ br >
2016-07-06 15:34:16 +00:00
2017-03-06 11:24:02 +00:00
CI/end-to-end tests sponsored by Google (GCE), DigitalOcean, [teuto.net ](https://teuto.net/ ) (openstack).
2017-01-05 13:52:51 +00:00
See the [test matrix ](docs/test_cases.md ) for details.