Do I have to use a repository with Binderhub? If not, how do I locally run them?

I’m not sure if a registry is mandatory. It doesn’t have to be an external registry though, you can run your own local registry in your K8s cluster.

However, since it’s your first time deploying BinderHub I’d recommend you start with a standard installation including a registry and get everything working, then modify your config and see if it’s possible to run without the registry. Otherwise it’ll be very difficult to tell whether problems are due to the lack of registry, or whether it’s some unrelated issue with your setup.

Currently BinderHub only spawns images with a version of KubeSpawner. In principle it could use any spawner that launches a Docker image since that’s what repo2docker builds, but if you want to go down this route I’d again recommend starting with something known to work, then try modifying it.

If you follow the zero-to-binderhub JupyterHub should be setup too on the same K8s cluster, are you seeing something different?

There’s some very preliminary exploratory work into running BinderHub without Kubernetes Support running without kubernetes, just docker · Issue #1318 · jupyterhub/binderhub · GitHub
but that’s a longer term project.