The goal of FOUNT is to set up a cloud native and vendor neutral platform in a simple way. It starts with a bare metal machine and aims at a full fledged cluster configuration. The aim is also to make the setup simple and modular in order to support the familiarization and understanding of Kubernetes.
In order to be able to experiment with FOUNT, the following hardware requirements are needed:
- Debian based (e.g. Ubuntu) machine with at least 1GB of ram and one core - for Gitlab 4 cores and 4GB of memory are recommended.
- A DNS record that points to the public IP address of the machine.
- A SSH connection to the machine - preferably using Public Key Authentication.
- A local
kubectl
andhelm
installation.
Additionally FOUNT uses Ansible for the setup and configuration. If Python 3 is installed you can easily install Ansible via Pip. This is shown in the following script:
$ python -m venv .venv
$ source .venv/bin/activate
$ pip install --upgrade pip
$ pip install ansible
The minimal setup of the k3s cluster on the machine is defined in the Ansible playbook playbooks/setup-k3s-cluster.yml
.
⚠️ The setup runs a retrieved script! This is potentially malicious and should be checked in advance.
Before the playbook can be executed the playbooks/hosts.yml
has to be adapted.
Please replace k3s.l4b.space with your DNS record.
You may also want to customize the SSH user and port.
After that navigate into the playbooks
directory and run: ansible-playbook setup-k3s-cluster.yml
If everything went fine something similar to
PLAY RECAP ****************************************************************************************************************** 1-single-dev.node.k3s : ok=6 changed=5 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
should be shown at the end of the log after the play finished.
Although the playbook already does it, you can check the status fo the cluster node by executing: kubectl get nodes
If the node reached the Ready status your cluster is up and running 🎉