Talos
Talos is an immutable distribution of kubernetes.
Installation
You first need to generate talos secrets (keep it secret !) :
talosctl gen secrets -o secrets.yaml
Generate talos configuration (keep it secret too) :
talosctl gen config \
--with-secrets secrets.yaml \
--config-patch @patches/01-machine.yaml \
--config-patch @patches/02-volumes.yaml \
--config-patch @patches/03-cluster.yaml \
--with-examples=false \
-o rendered/ \
--force \
homelab "https://192.168.0.2:6443"
Apply it to your node :
talosctl apply-config \
--nodes 192.168.0.2 \
--endpoints 192.168.0.2 \
--talosconfig=./rendered/talosconfig \
--mode reboot \
--insecure \
--file ./rendered/controlplane.yaml
Bootstrap you node and get you kubeconfig, it can take a few minutes :
talosctl bootstrap \
--nodes 192.168.0.2 \
--endpoints 192.168.0.2 \
--talosconfig=./rendered/talosconfig
talosctl kubeconfig \
--talosconfig=./rendered/talosconfig \
--nodes 192.168.0.2 \
--endpoints 192.168.0.2 \
--talosconfig=./rendered/talosconfig \
./kubeconfig
watch kubectl get nodes
Upgrade
Upgrading your node
Upgrading you node will drain it and restart it. Expect some downtime.
You can upgrade your node using talosctl
:
talosctl upgrade \
--nodes 192.168.0.2 \
--endpoints 192.168.0.2 \
--talosconfig=./rendered/talosconfig \
--image ghcr.io/siderolabs/installer:v1.10.5