Cluster preparation overview
A quick overview of the network ranges, base VM template, and DNS entries used for the development cluster.
Apply this preparation to your own cluster design
Subnets and hosts (summary)
This environment uses a simple layout that keeps things predictable and easy to troubleshoot.
- Local LAN:
192.168.30.0/24for management and SSH access. Typical hosts:192.168.30.200dev(dev.reids.net.au).192.168.30.201dev-lb-v1(dev-lb-v1.reids.net.au).192.168.30.203dev-m-v1(dev-m-v1.reids.net.au).192.168.30.206dev-w-v1(dev-w-v1.reids.net.au).192.168.30.208dev-ansible(dev-ansible.reids.net.au).
- Service and pod ranges (for on-prem Kubernetes later):
- Supernet reserved:
10.70.0.0/16. - Allocations:
- External services:
10.70.1.0/24. - Internal services:
10.70.128.0/18. - Pods:
10.70.192.0/18.
- External services:
- Supernet reserved:
See the full table and notes in Subnet and hosts.
VM template (summary)
Create one clean Ubuntu VM in Parallels, apply base updates, set a static IP, then clone it for each role (load balancer, control plane, worker, and Ansible node). This keeps everything consistent with a smaller footprint.
- Base image tasks.
- Update and upgrade packages.
- Install handy tools:
net-tools,traceroute,ntp,locate. - Set a static IPv4 address with Netplan.
- Choose a hostname that matches the machine’s role.
- Netplan example (adjust interface and address for each clone):
Replace
network:
version: 2
ethernets:
<interface-name>:
addresses:
- "<lan-ipv4-address>/24"<interface-name>with your NIC (for example,enp0s5) and<lan-ipv4-address>with the host’s address (for example,192.168.30.201). - Typical clones to create.
dev-lb-v1for the API and ingress load balancer.dev-m-v1for the first control plane node.dev-w-v1for the first worker node.dev-ansiblefor automation and inventory.
Step-by-step screenshots and exact commands are in VM Template.
DNS (summary)
Create local DNS records so every hostname resolves cleanly on your LAN, then mirror those entries in /etc/hosts on each node for resilience. This avoids surprises during bootstrap and keeps tools like Ansible straightforward.
- Router DNS.
- Add A-records for each host pointing to
192.168.30.0/24. - Keep short names and FQDNs consistent (for example,
dev-m-v1anddev-m-v1.reids.net.au).
- Add A-records for each host pointing to
/etc/hostsbaseline (example for the Ansible node):127.0.1.1 dev-ansible
192.168.30.200 dev dev.reids.net.au
192.168.30.201 dev-lb-v1 dev-lb-v1.reids.net.au
192.168.30.203 dev-m-v1 dev-m-v1.reids.net.au
192.168.30.206 dev-w-v1 dev-w-v1.reids.net.au- Quick checks.
ping <hostname>.nslookup <fqdn>ordig <fqdn>.ssh dev@<hostname>to confirm reachability.
Full examples and verification steps are in DNS.
Next steps
With subnets, templates, and DNS completed, you are ready to:
- Build or import your Kubernetes bootstrap artefacts.
- Assign service and pod CIDRs in line with the ranges above.
- Start the load balancer and control plane provisioning.
When you need more detail, jump into: