Setups
Vagrant
Vagrant/VirtualBox can be used to test drive k8s-tew. The host is used to bootstrap the cluster which runs in VirtualBox. The Vagrantfile included in the repository can be used for single-node/multi-node & Ubuntu 20.04/CentOS 8.2 setups.
The Vagrantfile can be configured using the environment variables:
OS - define the operating system. It accepts ubuntu, the default value, and centos.
MULTI_NODE - if set then a HA cluster is generated. Otherwise a single-node setup is used.
CONTROLLERS - defines the number of controller nodes. The default number is 3.
WORKERS - specifies the number of worker nodes. The default number is 2.
SSH_PUBLIC_KEY - if this environment variable is not set, then
$HOME/.ssh/id_rsa
is used by default.IP_PREFIX - this value is used to generate the IP addresses of the nodes. If not set 192.168.100 will be used. The single node has the IP address 192.168.100.50. The controllers start with the IP address 192.168.100.200 and the workers with 192.168.100.100.
CONTROLLERS_RAM - amount of RAM for one controller
WORKERS_RAM - amount of RAM for one worker
STORAGE_RAM - amount of RAM for one storage
CONTROLLERS_CPUS - number of CPUs per controller
WORKERS_CPUS - number of CPUs per worker
STORAGE_CPUS - number of CPUs per storage
Note
The multi-node setup with the default settings needs about 20GB RAM for itself.
Usage
The directory called setup
(https://github.com/darxkies/k8s-tew/tree/2.4.1/setup) contains sub-directories for various cluster setup configurations:
local - it starts a single-node cluster locally without using any kind of virtualization. This kind of setup needs root rights. It is meant for local development where it might be important to fire the cluster up and shut it down fast. If you want it to start automatically, take a look at the quickstart section.
ubuntu-single-node - Ubuntu 20.04 single-node cluster. It needs about 8GB Ram.
ubuntu-multi-node - Ubuntu 20.04 HA cluster. It needs around 20GB Ram.
centos-single-node - CentOS 8.2 single-node cluster. It needs about 8GB Ram.
centos-multi-node - CentOS 8.2 HA cluster. It needs around 20GB Ram.
Note
Regardless of the setup, once the deployment is done it will take a while to download all required containers from the internet. So better use kubectl to check the status of the pods.
Note
For the local setup, to access the Kubernetes Dashboard use the internal IP address (e.g. 192.168.x.y or 10.x.y.z) and not 127.0.0.1/localhost. Depending on the hardware used, it might take a while until it starts and setups everything.
Create
Change to one of the sub-directories and enter the following command to start the cluster:
make
Note
This will destroy any existing VMs, creates new VMs and performs all the steps (forced initialization, configuration, generation and deployment) to create the cluster.
Stop
For the local setup, just press CTRL+C.
For the other setups enter:
make halt
Start
To start an existing setup/VMs enter:
make up
Note
This and the following commands work only for Vagrant based setups.
SSH
For single-node setups enter:
make ssh
And for multi-node setups:
make ssh-controller00 make ssh-controller01 make ssh-controller02 make ssh-worker00 make ssh-worker01
Kubernetes Dashboard
This will display the token, and then it will open the web browser pointing to the address of Kubernetes Dashboard:
make dashboard
Ingress Port Forwarding
In order to start port forwarding from your host’s ports 80 and 443 to Vagrant’s VMs for Ingress enter:
make forward-80 make forward-443
Note
Both commands are blocking. So you need two different terminal sessions.