k8s-clusters/home/readme.md

1.9 KiB

Home Cluster

TODO

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?