nanox / ansible-k8s-bare-metal

Installing a bare-metal Kubernetes cluster with Ansible

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ansible-Kubernetes Repository

Automate the provisioning of a new bare-metal multi-node Kubernetes cluster with Ansible. Uses all the industry-standard tools for an enterprise-grade cluster.

Table of Contents

Stack

  • Ansible: an open source IT automation engine.
  • ContainerD: an industry-standard container runtime.
  • Kubernetes: an open-source system for automating deployment, scaling, and management of containerized applications.
  • Calico: an open source networking and network security solution for containers (CNI).
  • MetalLB: a bare metal load-balancer for Kubernetes.
  • Nginx: an Ingress controller.
  • Cert-Manager: adds certificates and certificate issuers as resource types in Kubernetes cluster.

Requirements

  1. A Linux machine with a superuser privileges and pre-installed Ansible.
  2. Ubuntu machines that are intended to become part of the new Kubernetes cluster. Make sure that your SSH key is already installed on the machines by running the following command:
$ ssh-copy-id <The remote username>@<The IPv4 address of the remote machine>

Usage

  1. Clone this Git repository to your local working station:
$ git clone https://github.com/nvtienanh/ansible-kubernetes-bare-metal.git
  1. Change directory to the root directory of the project:
$ cd kubernetes
  1. Edit the values of the default variables to your requirements:
$ nano defaults/main.yaml
  1. Edit the Ansible inventory file to your requirements:
$ nano inventory/hosts.ini
  1. Run the Ansible Playbook:
$ ansible-playbook -i inventory/hosts.ini -K playbooks/cluster.yaml

About

Installing a bare-metal Kubernetes cluster with Ansible