Adding a Node
Todo
Look into terraforming this, rather than making it a manual process.
- In Proxmox, click "Create VM"
- For general settings, configure the following:
- Node: pick the host to put this node on
- VM ID: leave default
- Name:
k8s-control-plane-<node number>
ork8s-worker-<node number>
, depending on the node role - Resource Pool:
Kubernetes
- For OS, configure the following:
- Use CD/DVD disc image file (iso)
- Storage:
mnemosyne-isos
- ISO image:
talos-linux-1.8.0-metal-amd64.iso
- Type:
Linux
- Version:
6.x - 2.6 Kernel
- For System, leave all settings as default.
- For Disks, configure the following:
- Bus/Device:
SCSI0
- Storage:
local-lvm
- Disk size (GiB):
80
- Cache:
Default (No cache)
- Bus/Device:
- For CPU, configure the following:
- Sockets:
1
- Cores:
2
- Type:
x86-64-v2-AES
- Sockets:
- For Memory, configure the memory amount to be
4096
- For Network, leave all settings default except for VLAN Tag, which should be
8
- On the confirmation page, check "Start after created", and click Finish
- On the newly-created VM, open the console. Wait for the VM to finish booting and the stage to be "Maintenance". Take note of the listed IP address on the Talos dashboard.
- Open the UniFi console and navigate to the client list. Locate the newly-added client with the IP from Talos.
- Click the client, and go to Settings. Configure the following:
- Name: Name of the VM you set in Proxmox
- Fixed IP: on
- IP Address: the next IP address in the relevant CIDR block for the node type
- Click Apply Changes
- Return to Proxmox and reset the VM, to cause Talos to pick up the new IP address assigned from UniFi.
- Open
terraform/cluster.tf
in the Ops repo, and add the new node to the relevant local.- For example, for the first worker node:
- Once the VM is started up and in "Maintenance" state again, run
terraform apply
. This will kick off OS installation and will take roughly 5 minutes to complete.
At this point, the node should now show up in kubectl get nodes
, and be ready for use.
If necessary, after upgrading use talosctl upgrade
to upgrade the new nodes to a matching minor version with the rest of the nodes.