Skip to main content

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/24 for management and SSH access. Typical hosts:
    • 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).
    • 192.168.30.208 dev-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.

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):
    network:
    version: 2
    ethernets:
    <interface-name>:
    addresses:
    - "<lan-ipv4-address>/24"
    Replace <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-v1 for the API and ingress load balancer.
    • dev-m-v1 for the first control plane node.
    • dev-w-v1 for the first worker node.
    • dev-ansible for 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-v1 and dev-m-v1.reids.net.au).
  • /etc/hosts baseline (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> or dig <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: