k8s-clusters/home/readme.md

55 lines
1.9 KiB
Markdown

# Home Cluster
## TODO
- Netboot: https://www.sidero.dev/v0.5/getting-started/prereq-dhcp/
## Setup
> Source: https://www.talos.dev/v1.1/introduction/getting-started/
- Boot the Talos ISO on the initial node
- Prepare networking
- Internally:
- Add a DNS entry for the cluster endpoint (router's `/etc/hosts` + `dnsmasq`) to point to the initial node
- Externally:
- Add a DNS entry for the cluster endpoint to point to the router
- Setup the router to forward external requests to the initial node
- If you are not using _this_ configuration:
- `talosctl gen config "cluster-name" "cluster-endpoint"`
- Edit files as needed
- Apply the control plane config to the initial node
- `talosctl apply-config --insecure --nodes "$INITIAL_NODE_ADDR" --file controlplane.yaml`
- You will need to wait a bit for the configuration to be applied, Talos to
install itself, for the node to reboot, and for post-boot initialization
- Setup the client to communicate with the newly-configured node
- `talosctl --talosconfig=./talosconfig config endpoint "$INITIAL_NODE_ADDR"`
- Optionally also make this the default with `talosctl config merge ./talosconfig`
- Bootstrap the cluster
- `talosctl bootstrap --nodes "$INITIAL_NODE_ADDR"`
- You will need to wait a bit for Kubernetes to initialize
- Pull down the kubeconfig
- `talosctl kubeconfig`
Once the cluster has finished initializing _and starting up_, you should be
able to `kubectl get nodes`.
## Adding Nodes
- Boot the Talos ISO on the target node
- Apply the appropriate configuration to the target node
- `talosctl apply-config --insecure --nodes "$TARGET_NODE_ADDR" --file controlplane.yaml`
- You will need to wait a bit for Kubernetes to initialize, start up, and
then join the cluster
- Add the node to `talosconfig` as needed
## Storage
- TODO?
## Load Balancing
I can _probably_ handle this with my router?
- TODO?