• Stars
    star
    335
  • Rank 125,904 (Top 3 %)
  • Language
    Python
  • Created over 10 years ago
  • Updated about 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Ansible playbooks to build a kubernetes cluster from scratch

Kubernetes-ansible

This playbook helps you to set up a Kubernetes cluster on a number of Fedora or RHEL machines. Doesn't matter how or where or whatever. Real hardware, VMs, honey badger don't care.

Follow AWS.md if you want to install Kubernetes, which is aware of AWS and e.g. can download list of minions from AWS itself instead of static configuration file.

Usage

Record the IP address of which machine you want to be your master Record the IP address of the machine you want to be your etcd server Record the IP addresses of the machines you want to be your minions.

Stick the system information into the 'inventory' file.

Set up ssh access via public keys

See the pre-setup/ directory.

Configure your cluster

Configure group_vars/all.yml to reflect your needs. The options should be described there in full detail.

Set up the actual kubernetes cluster

You already did the config! Just run the setup::

$ ansible-playbook -i inventory setup.yml

This works on RHEL7, Atomic, F20, F21 and rawhide.

For RHEL7 it will set up rhn subscriptions. Put your username in a file named ~/rhn_username. Put your rhn password into a file named ~/rhn_password.

When DNS setup is enabled, it may take some time for Kubernetes (and Docker inside) to download the images and start the DNS pod. Watch kubectl get pods to see when kube-dns-* pod enters Running state. Try to resolve kube-dns.default.<domainname> to check it's really working.

Set up flannel, a network overlay (optional)

Again, you need to edit group_vars/all.yml.

Assign the entire address space which flannel should use for an overlay network. Again, your network infrastructure does not need to know about and should not use any addresses in this range. Pods will be assigned addresses in this range, but the routing between pods will be over the flannel controlled overlay network, NOT your network infrastructure.