From f90830973904a11444394b689546fa53082ac3d9 Mon Sep 17 00:00:00 2001 From: Smaine Kahlouch Date: Sun, 13 Dec 2015 16:59:22 +0100 Subject: [PATCH] update README with multi-master notes --- README.md | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 62fecf202..779d6a2d9 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,9 @@ Based on [CiscoCloud](https://github.com/CiscoCloud/kubernetes-ansible) work. ### Requirements Tested on **Debian Jessie** and **Ubuntu** (14.10, 15.04, 15.10). -The target servers must have access to the Internet in order to pull docker imaqes. -The firewalls are not managed, you'll need to implement your own rules the way you used to. +* The target servers must have access to the Internet in order to pull docker imaqes. +* The firewalls are not managed, you'll need to implement your own rules the way you used to. +* the following packages are required: openssl, curl, dnsmasq, python-httplib2 on remote servers and python-ipaddr on deployment machine. Ansible v1.9.x @@ -21,7 +22,7 @@ Ansible v1.9.x Quickstart ------------------------- The following steps will quickly setup a kubernetes cluster with default configuration. -These defaults are good for a test purposes. +These defaults are good for tests purposes. Edit the inventory according to the number of servers ``` @@ -45,6 +46,8 @@ Run the playbook ansible-playbook -i environments/production/inventory cluster.yml -u root ``` +You can jump directly to "*Available apps, installation procedure*" + Ansible ------------------------- @@ -111,20 +114,25 @@ loadbalancer_address="10.99.0.44" roles: - { role: download, tags: download } -- hosts: k8s-cluster +# etcd must be running on master(s) before going on +- hosts: kube-master roles: - { role: etcd, tags: etcd } + +- hosts: k8s-cluster + roles: - { role: docker, tags: docker } - - { role: network_plugin, tags: ['calico', 'flannel', 'network'] } - { role: dnsmasq, tags: dnsmasq } + - { role: network_plugin, tags: ['calico', 'flannel', 'network'] } + +- hosts: kube-node + roles: + - { role: kubernetes/node, tags: node } - hosts: kube-master roles: - { role: kubernetes/master, tags: master } -- hosts: kube-node - roles: - - { role: kubernetes/node, tags: node } ``` ### Run @@ -136,6 +144,14 @@ ansible-playbook -i environments/dev/inventory cluster.yml -u root Kubernetes ------------------------- +### Multi master notes +* You can choose where to install the master components. If you want your master node to act both as master (api,scheduler,controller) and node (e.g. accept workloads, create pods ...), +the server address has to be present on both groups 'kube-master' and 'kube-node'. + +* Almost all kubernetes components are running into pods except *kubelet*. These pods are managed by kubelet which ensure they're always running + +* One etcd cluster member per node will be configured. For safety reasons, you should have at least two master nodes. + ### Network Overlay You can choose between 2 network plugins. Only one must be chosen.