Skip to content

Latest commit

 

History

History
27 lines (25 loc) · 1.59 KB

File metadata and controls

27 lines (25 loc) · 1.59 KB

TODO

Goal: spin up practice stands, including a bare Kubernetes cluster.

  • multi-VM: k8s-cluster-up NAME [WORKERS] — control plane + N workers, ansible inventory in clusters/NAME/inventory.ini; k8s-cluster-rm to tear down
  • static IPs: dhcp-host (MAC → IP) via virsh net-update, vm-rm removes the reservation together with the VM
  • user-data profile for k8s nodes: vm-up-k8s-node — containerd (SystemdCgroup), br_netfilter + sysctls, swap off, kubeadm/kubelet/kubectl (pkgs.k8s.io, K8S_VERSION, held); vm-up stays generic
  • RAM budget: guard on MemAvailable in the k8s scripts (VM_FORCE=1 to bypass); rough layout: cp + 2 workers @ 2048 MiB ≈ 6 GiB (see README)
  • shared VM creation path: lib/vm.sh (vm_create), lib/net.sh (dhcp-host reservations), profiles/*.sh — cloud-config separate from the mechanics; vm-up/vm-up-k8s-node became wrappers
  • VM_HOSTNAME: libvirt domain name separate from the guest hostname
  • KTHW stand: kthw profile (no containerd/kubeadm, manage_etc_hosts: false, ip_forward), kthw-stand-up/kthw-stand-rm — 4 machines to the lab 01 spec, machines.txt in clusters/NAME/
  • kubeadm init/join: ansible playbook on top of inventory.ini (CNI, join tokens) — manual for now
  • KTHW run-through: the tutorial walked end to end on the stand, all thirteen labs, by hand. The boundary holds — the stand hands over machines, lab 03 stays manual, and nothing in labs 02–13 needed the stand changed. Byproduct: 768 MiB and a 10G disk per node are enough for the whole run (see README)