Skip to content

High Level Design

hostname IP address
alpine1 192.168.100.1/24
Hyper-V-Host 192.168.100.2/24
xsinglenode 192.168.100.199/24
loadbalancer 192.168.100.201/24
master1 192.168.100.202/24
master2 192.168.100.203/24
master3 192.168.100.204/24
worker1 192.168.100.205/24
worker2 192.168.100.206/24
worker3 192.168.100.207/24
metallb 192.168.100.208-215

alpine1 functions for the devices in the subnet 192.168.100.0/24 as - DHCP server - Internet Router This server has 2 NIC one for the Internet access and another on the subnet 192.168.100.0/24 - DNS - NGINX web server - NFS server - TFTP server - Hosting the various files required for the Ubuntu and Kubernetese setup

xsinglenode Is a single node implementation of Kubernetes.

loadbalancer functions as the entry point to the Master nodes, performing the High Availability fucntions for the multiple Master nodes.

master1/2/3 This is the Kubernetes Control plane. Acting as a High Availability setup that allows for 1 Master node failure at any time.

worker1/2/3 The Kubernetes workloads are deployed on these nodes. 3 nodes allow for some load balancing in the event nodes need to be taken down for maintenance purposes.

metallb The Ingress requires a set of IP addresses to cater for incoming traffic to the Kubernetes cluster. These IP ranges are reserved for this functionality.

High Level Network Diagram

HYPER-V Network connectivity All the VM's will use alpine1 as the gateway to the internet. Apart from the gateway function, alpine1 also acts as performs several other functions.

flowchart TD
subgraph HYPER-V Network connectivity
Internet o--o 
    newLines["`alpine1
    DHCP
    Router
    DNS
    NGINX
    NFS
    TFTP`"]
newLines["`**alpine1**
DHCP 
Router
DNS
NGINX
NFS
TFTP`"]  o--o alpine1
alpine1 o--o xsinglenode;
alpine1 o--o loadbalancer;
alpine1 o--o master1;
alpine1 o--o master2;
alpine1 o--o master3;
alpine1 o--o worker1;
alpine1 o--o worker2;

alpine1-->worker3;
end