kubespray-ansible-rhel

Deploy a Kubernetes cluster with Kubespray using Bash scripts, Ansible and Vagrant

APACHE-2.0 License

Stars
2
Committers
3

Deployment of a Kubernetes Cluster with Kubespray

This project automates the deployment of a kubernetes cluster with kubespray in Test environment.

Ansible and bash scripts are used to setup a kubernetes cluster.

Vagrant is utilized to provision VMs.

Requirements

  • Minimum required version of Kubernetes is v1.27

  • Ansible v2.14+, Jinja 2.11+ and python-netaddr is installed on the machine that will run Ansible commands.

  • The target servers must have access to the Internet in order to pull docker images. Otherwise, additional configuration is required.

Get Chocolatey and use it to install vagrant:

  choco install vagrant

Getting Started

Provision vagrant VMs

vagrant up

Login to control VM

vagrant ssh control

Change password of root user

This new password will be required when public RSA keys are being transferred to kube nodes.

sudo passwd

Update yum package manager

cd /
yum update

Install Git

yum install git

Clone this repo to / directory in control node

git clone [email protected]:odennav/kubespray-bash-ansible.git

Clone kubernetes-sigs kubespray repo to / directory in control node

git clone [email protected]:kubernetes-sigs/kubespray.git

Run dependencies-install.sh script in control node to install necessary dependencies, update yum package index and ensuring python version compatibility.

chmod 770 dependencies-install
./dependencies-install

Setup system for Ansible playbook execution

This bash script copies SSH keys, updates Ansible inventory, builds host inventory manifest and installs kubectl.

chmod 770 k8s-env-build.sh
./k8s-env-build.sh

Run Ansible playbook to to deploy kubernetes cluster

Change directory to your local kubespray repository and execute cluster.yml ansible playbook

cd /kubespray
ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml   

Reset Kubernetes Cluster

To remove current kubernetes cluster, run playbook as root user.

Run this command in kubespray directory

cd /kubespray
ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root  reset.yml

Destroying Resources(Optional)

To destroy the VMs created by vagrant.

vagrant destroy

special thanks to Kubernetes-sigs for their amazing work.


Enjoy!

Related Projects