k3s/contrib/ansible/README.md

1.7 KiB

Kubernetes Ansible

This playbook and set of roles set up a Kubernetes cluster onto machines. They can be real hardware, VMs, things in a public cloud, etc. Anything that you can connect to via SSH.

Before starting

  • Record the IP address/hostname of which machine you want to be your master (only support a single master)
  • Record the IP address/hostname of the machine you want to be your etcd server (often same as master, only one)
  • Record the IP addresses/hostname of the machines you want to be your nodes. (the master can also be a node)
  • Make sure your ansible running machine has ansible 1.9 and python-netaddr installed.

Setup

Configure inventory

Add the system information gathered above into the 'inventory' file, or create a new inventory file for the cluster.

Configure Cluster options

Look though all of the options in group_vars/all.yml and set the variables to reflect your needs. The options are described there in full detail.

Running the playbook

After going through the setup, run the setup script provided:

$ ./setup.sh

You may override the inventory file by doing:

INVENTORY=myinventory ./setup.sh

In general this will work on very recent Fedora, rawhide or F21. Future work to support RHEL7, CentOS, and possible other distros should be forthcoming.

Targeted runs

You can just setup certain parts instead of doing it all.

etcd

$ ./setup.sh --tags=etcd

Kubernetes master

$ ./setup.sh --tags=masters

kubernetes nodes

$ ./setup.sh --tags=nodes

flannel

$ ./setup.sh --tags=flannel

Analytics