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.1.0/24 for management and SSH access. Typical hosts:
    • 192.168.1.200 dev (dev.internal.example.com).
    • 192.168.1.201 lb-1 (lb-1.internal.example.com).
    • 192.168.1.203 master-1 (master-1.internal.example.com).
    • 192.168.1.206 worker-1 (worker-1.internal.example.com).
    • 192.168.1.208 ansible-1 (ansible-1.internal.example.com).
  • 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.1.201).
  • Typical clones to create.
    • lb-1 for the API and ingress load balancer.
    • master-1 for the first control plane node.
    • worker-1 for the first worker node.
    • ansible-1 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.1.0/24.
    • Keep short names and FQDNs consistent (for example, master-1 and master-1.internal.example.com).
  • /etc/hosts baseline (example for the Ansible node):
    127.0.1.1 ansible-1
    192.168.1.200 dev dev.internal.example.com
    192.168.1.201 lb-1 lb-1.internal.example.com
    192.168.1.203 master-1 master-1.internal.example.com
    192.168.1.206 worker-1 worker-1.internal.example.com
  • 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: