Isn’t k8s pretty much overkill for anything single-node?
Yes and No it depends. For example if you want to have better security and have your services to have as little down time as possible its a great choice also k8s is almost never needed(except is some scenarios) but rather k3s
What does k8s (or k3s) give you for a single-node setup that you can’t get from docker swarm or even plain docker-compose?
Well experience and the concept of pods
Edit: Just reread my response and thought it was quite bad so with this edit I hope to fix it. To answer your question regarding a one node setup with K3S compared to Docker Swarm is the following. When you later might want to expand your cluster or swarm K3S will be more flexible due to how it is built (Its architecture). Also you get the advantage of what is called pods that have way more isolation when setup correctly. Also if you use something like Harvester by Rancher or Proxmox you can turn one server into several this would allow you to have a several nodes and therefore also load balance and higher availability. I suggest you check our Kubernates(K8s) and K3S documentation and get to know the architecture of it! And the last and probably bigest advantage is that you will learn K3S and therefor K8S, this is a skill that is sought after in the IT industry!
I hope this is a better response :)