aefe4a99d2
In order to enable offline/intranet installation cases: * Move DNS/resolvconf configuration to preinstall role. Remove skip_dnsmasq_k8s var as not needed anymore. * Preconfigure DNS stack early, which may be the case when downloading artifacts from intranet repositories. Do not configure K8s DNS resolvers for hosts /etc/resolv.conf yet early (as they may be not existing). * Reconfigure K8s DNS resolvers for hosts only after kubedns/dnsmasq was set up and before K8s apps to be created. * Move docker install task to early stage as well and unbind it from the etcd role's specific install path. Fix external flannel dependency on docker role handlers. Also fix the docker restart handlers' steps ordering to match the expected sequence (the socket then the service). * Add default resolver fact, which is the cloud provider specific and remove hardcoded GCE resolver. * Reduce default ndots for hosts /etc/resolv.conf to 2. Multiple search domains combined with high ndots values lead to poor performance of DNS stack and make ansible workers to fail very often with the "Timeout (12s) waiting for privilege escalation prompt:" error. * Update docs. Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com> |
||
---|---|---|
contrib | ||
docs | ||
inventory | ||
roles | ||
scripts | ||
tests | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
ansible.cfg | ||
cluster.yml | ||
code-of-conduct.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
OWNERS | ||
README.md | ||
RELEASE.md | ||
requirements.txt | ||
requirements.yml | ||
ubuntu-bootstrap.yml | ||
uploads.yml | ||
Vagrantfile |
##Deploy a production ready kubernetes cluster
If you have questions, join us on the kubernetes slack, channel #kargo.
- Can be deployed on AWS, GCE, Azure, OpenStack or Baremetal
- 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 :
kargo-cli
Ansible usual commands
vagrant by simply running vagrant up
(for tests purposes)
- Requirements
- Getting started
- Vagrant install
- CoreOS bootstrap
- Ansible variables
- Cloud providers
- OpenStack
- AWS
- Azure
- Network plugins
- Roadmap
Supported Linux distributions
- CoreOS
- Debian Wheezy, Jessie
- Ubuntu 14.10, 15.04, 15.10, 16.04
- Fedora 23
- CentOS/RHEL 7
Versions
kubernetes v1.4.6
etcd v3.0.6
flanneld v0.6.2
calicoctl v0.22.0
weave v1.6.1
docker v1.10.3
Requirements
- The target servers must have access to the Internet in order to pull docker images.
- The firewalls are not managed, you'll need to implement your own rules the way you used to. in order to avoid any issue during deployment you should disable your firewall
- Copy your ssh keys to all the servers part of your inventory.
- Ansible v2.x and python-netaddr
Network plugins
You can choose between 3 network plugins. (default: flannel
with vxlan backend)
-
flannel: gre/vxlan (layer 2) networking.
-
calico: bgp (layer 3) networking.
-
weave: Weave is a lightweight container overlay network that doesn't require an external K/V database cluster.
(Please refer toweave
troubleshooting documentation)
The choice is defined with the variable kube_network_plugin
CI Tests
Google Compute Engine
| Calico | Flannel | Weave |
------------- | ------------- | ------------- | ------------- | Ubuntu Xenial |||| CentOS 7 |||| CoreOS (stable) ||||
CI tests sponsored by Google (GCE), and teuto.net for OpenStack.