Goal

The goal is to deploy kubernetes on my local networks, and keep everything as reproducible as possible.

Stack

I'll use Fedora Core OS, Matchbox and Terraform 1, a match the requirements for Tectonic2.

Steps

Network Setup DHCP/TFTP/DNS

First learning the basics

To check open ports

lsof -Pni | grep LISTEN

Run the provided6 image with dnsmasq and PXE toolkit

docker run --rm --cap-add=NET_ADMIN --net=host quay.io/coreos/dnsmasq \
  -d -q \
  --dhcp-range=192.168.1.3,192.168.1.254 \
  --enable-tftp --tftp-root=/var/lib/tftpboot \
  --dhcp-match=set:bios,option:client-arch,0 \
  --dhcp-boot=tag:bios,undionly.kpxe \
  --dhcp-match=set:efi32,option:client-arch,6 \
  --dhcp-boot=tag:efi32,ipxe.efi \
  --dhcp-match=set:efibc,option:client-arch,7 \
  --dhcp-boot=tag:efibc,ipxe.efi \
  --dhcp-match=set:efi64,option:client-arch,9 \
  --dhcp-boot=tag:efi64,ipxe.efi \
  --dhcp-userclass=set:ipxe,iPXE \
  --dhcp-boot=tag:ipxe,http://matchbox.example.com:8080/boot.ipxe \
  --address=/matchbox.example/192.168.1.2 \
  --log-queries \
  --log-dhcp

Matchbox

...

PXE network boot enviroment

...

Terraform Tectonic

...

Links

1 https://coreos.com/tectonic/docs/latest/install/bare-metal/metal-terraform.html
2 https://coreos.com/tectonic/docs/latest/install/bare-metal/requirements.html