--- title: "Road to local k8s" date: 2020-07-13 tags: ['kubernetes', 'linux', 'fedora'] --- * 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 [fn:1], a match the requirements for Tectonic [fn:2] ** Steps - Network Setup DHCP/TFTP/DNS [fn:3] - Matchbox [fn:4] - PXE network boot environment - Terraform Tectonic [fn:5] ** Network Setup DHCP/TFTP/DNS First learning the basics again: - https://linuxhint.com/install_dhcp_server_ubuntu/ - https://www.youtube.com/watch?v=XQ3T14SIlV4 To check open ports #+BEGIN_SRC sh lsof -Pni | grep LISTEN #+END_SRC Run the provided [fn:dnsmasq] image with ~dnsmasq~ and PXE toolkit #+BEGIN_SRC sh 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 #+END_SRC ** Matchbox ** PXE network boot environment ** Terraform Tectonic ------ * Links [fn:1]https://coreos.com/tectonic/docs/latest/install/bare-metal/metal-terraform.html [fn:2]https://coreos.com/tectonic/docs/latest/install/bare-metal/requirements.html [fn:3]https://coreos.com/matchbox/docs/latest/network-setup.html [fn:4]https://coreos.com/matchbox/docs/latest/deployment.html [fn:5]https://coreos.com/tectonic/releases/ [fn:dnsmasq]https://github.com/poseidon/matchbox/tree/v0.7.0/contrib/dnsmasq