Please let me elaborate with this topic:
"In other words, can I run the control plane and a worker node on the same cluster"
From k3s docs:
A server node is defined as a machine (bare-metal or virtual) running the k3s server command.
A worker node is defined as a machine running the k3s agent command.
Adding more agent will create more worker nodes to run your application.
In this concept one master node (running k3s server command and additional agent nodes running the k3s agent command) still create one cluster with single control plane. However you can extend this approach by creating High-Availability K3s Server with multiple server(control planes) and agents nodes.
As per k8s docs:
Control Plane Components:
- kube-apiserver,
- etcd,
- kube-scheduler,
- kube-controller-manager,
- cloud-controller-manager,
As I can see there is also an option to run k3s wiht multiple agents on single machine Using Docker as the Container Runtime - K3d ( (K3s in Docker) and docker-compose.
As an alternative please follow: