# Ops Runbook — Research Stack **Last updated:** 2026-05-29 Quick-reference operational procedures for k3s, FPGA, Tailscale, GPU, and DNS. --- ## k3s Cluster ### Start / Stop ```bash # Set kubeconfig export KUBECONFIG=/tmp/researchstack-kubeconfig.yaml # Check cluster status kubectl get nodes kubectl get pods -A ``` **Control plane (nixos):** ```bash # Restart k3s server sudo systemctl restart k3s # Check k3s server health sudo systemctl status k3s sudo journalctl -u k3s -f --lines=50 ``` ### Check Health ```bash # All nodes ready kubectl get nodes -o wide # All pods running (any namespace) kubectl get pods -A --field-selector='status.phase!=Running,status.phase!=Succeeded' # Specific namespace kubectl get pods -n services kubectl get pods -n media kubectl get pods -n monitoring kubectl get pods -n ai-models ``` ### Restart Pods ```bash # Restart a deployment (rolling restart) kubectl rollout restart deployment/ -n # Examples kubectl rollout restart deployment/homer -n services kubectl rollout restart deployment/ollama -n ai-models kubectl rollout restart deployment/cluster-dashboard -n monitoring # Force delete stuck pod kubectl delete pod -n --grace-period=0 --force ``` ### View Logs ```bash # Pod logs kubectl logs -n --tail=100 -f # Previous container (if crashed) kubectl logs -n --previous # All pods matching label kubectl logs -l app=