kubespray/docs/getting-started.md

69 lines
2.4 KiB
Markdown
Raw Normal View History

2016-07-04 20:13:18 +08:00
Getting started
===============
2017-06-24 00:35:10 +08:00
The easiest way to run the deployement is to use the **kubespray-cli** tool.
A complete documentation can be found in its [github repository](https://github.com/kubespray/kubespray-cli).
2016-07-04 20:13:18 +08:00
Here is a simple example on AWS:
2016-07-04 20:13:18 +08:00
* Create instances and generate the inventory
```
2017-06-24 00:35:10 +08:00
kubespray aws --instances 3
2016-07-04 20:13:18 +08:00
```
* Run the deployment
2016-07-04 20:13:18 +08:00
```
2017-06-24 00:35:10 +08:00
kubespray deploy --aws -u centos -n calico
2016-07-04 20:13:18 +08:00
```
Building your own inventory
---------------------------
2017-02-14 18:08:27 +08:00
Ansible inventory can be stored in 3 formats: YAML, JSON, or INI-like. There is
an example inventory located
2017-06-17 01:25:46 +08:00
[here](https://github.com/kubernetes-incubator/kubespray/blob/master/inventory/inventory.example).
You can use an
2017-06-17 01:25:46 +08:00
[inventory generator](https://github.com/kubernetes-incubator/kubespray/blob/master/contrib/inventory_builder/inventory.py)
to create or modify an Ansible inventory. Currently, it is limited in
2017-06-17 01:25:46 +08:00
functionality and is only use for making a basic Kubespray cluster, but it does
support creating large clusters. It now supports
separated ETCD and Kubernetes master roles from node role if the size exceeds a
certain threshold. Run inventory.py help for more information.
Example inventory generator usage:
```
cp -r inventory my_inventory
declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5)
CONFIG_FILE=my_inventory/inventory.cfg python3 contrib/inventory_builder/inventory.py ${IPS[@]}
```
Starting custom deployment
--------------------------
Once you have an inventory, you may want to customize deployment data vars
and start the deployment:
2017-02-14 18:09:18 +08:00
**IMPORTANT: Edit my_inventory/groups_vars/*.yaml to override data vars**
```
2017-02-26 18:42:52 +08:00
ansible-playbook -i my_inventory/inventory.cfg cluster.yml -b -v \
--private-key=~/.ssh/private_key
```
See more details in the [ansible guide](ansible.md).
Adding nodes
--------------------------
You may want to add worker nodes to your existing cluster. This can be done by re-running the `cluster.yml` playbook, or you can target the bare minimum needed to get kubelet installed on the worker and talking to your masters. This is especially helpful when doing something like autoscaling your clusters.
- Add the new worker node to your inventory under kube-node (or utilize a [dynamic inventory](https://docs.ansible.com/ansible/intro_dynamic_inventory.html)).
- Run the ansible-playbook command, substituting `scale.yml` for `cluster.yml`:
```
ansible-playbook -i my_inventory/inventory.cfg scale.yml -b -v \
--private-key=~/.ssh/private_key
```