| .. | ||
| configs | ||
| .gitignore | ||
| CLAUDE.md | ||
| controlplane.yaml | ||
| kubeconfig | ||
| README.md | ||
| secrets.yaml.backup | ||
| talosconfig.backup | ||
| worker.yaml | ||
Talos Home Cluster
Cluster Information
- Cluster Name: home-cluster
- Kubernetes Version: v1.35.0
- Control Plane Nodes: 3 (10.0.15.1-3)
- Worker Nodes: 3 (10.0.15.4-6)
- API Endpoint: https://10.0.15.1:6443
Node Details
| Node Name | Role | IP | Proxmox Node | VMID |
|---|---|---|---|---|
| talos-cp1 | Control Plane | 10.0.15.1 | node1 | 200 |
| talos-cp2 | Control Plane | 10.0.15.2 | node2 | 201 |
| talos-cp3 | Control Plane | 10.0.15.3 | node3 | 202 |
| talos-worker1 | Worker | 10.0.15.4 | node1 | 210 |
| talos-worker2 | Worker | 10.0.15.5 | node2 | 211 |
| talos-worker3 | Worker | 10.0.15.6 | node3 | 212 |
Configuration Files
secrets.yaml- Cluster secrets (keep secure!)controlplane.yaml- Control plane node configurationworker.yaml- Worker node configurationtalosconfig- Talosctl client configuration
Using the Cluster
Talosctl Commands
# Check cluster health
talosctl --talosconfig talosconfig health
# Get node list
talosctl --talosconfig talosconfig get members
# View logs from a node
talosctl --talosconfig talosconfig logs -f kubelet
# Check service status
talosctl --talosconfig talosconfig service
# Upgrade Talos (example)
talosctl --talosconfig talosconfig upgrade --image ghcr.io/siderolabs/installer:v1.9.5
Kubectl Commands
The kubeconfig has been merged into your default kubectl config:
# View nodes
kubectl get nodes
# View all pods
kubectl get pods -A
# View cluster info
kubectl cluster-info
Storage Configuration
This cluster uses Proxmox Ceph storage for VM disks. For Kubernetes persistent storage, you'll need to deploy a storage solution:
Option 1: Ceph CSI (Direct Proxmox Ceph)
See CLAUDE.md for Ceph CSI setup instructions to use Proxmox Ceph directly.
Option 2: Longhorn
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.7.2/deploy/longhorn.yaml
Option 3: Rook-Ceph
Deploy a separate Ceph cluster inside Kubernetes using Rook.
Networking
- CNI: Flannel (deployed by default)
- Service CIDR: Default Kubernetes range
- Pod CIDR: Default Kubernetes range
Maintenance
Adding a Node
- Clone VM from template in Terraform
- Apply appropriate config:
talosctl --talosconfig talosconfig apply-config --insecure --nodes <NEW_NODE_IP> --file controlplane.yaml
Removing a Node
# Drain node first
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data
# Remove from cluster
kubectl delete node <node-name>
# Reset Talos on the node
talosctl --talosconfig talosconfig reset --nodes <NODE_IP>
Upgrading Kubernetes
talosctl --talosconfig talosconfig upgrade-k8s --to 1.36.0
Troubleshooting
Node not joining cluster
# Check node logs
talosctl --talosconfig talosconfig logs -f kubelet --nodes <NODE_IP>
# Check etcd members
talosctl --talosconfig talosconfig etcd members
Reset a Node
talosctl --talosconfig talosconfig reset --nodes <NODE_IP> --graceful=false
Reboot a Node
talosctl --talosconfig talosconfig reboot --nodes <NODE_IP>
Backup
Important files to backup:
secrets.yaml- Required to add nodes or recover clustertalosconfig- Required for talosctl access- Kubeconfig is stored in
~/.kube/config
Store these securely in a password manager or encrypted backup.