Some basic questions

Apologies if these are documented somewhere. I’m just evaluating K8ssandra and trying to learn a bit more about how this works.

In a traditional Cassandra cluster, Gossip is used to inform the nodes about all other nodes. The cooridnator node will send the requests directly to all other nodes in the cluster and wait until the desired consistency is achieved.

How does this work in K8ssandra? How do the nodes (Pods) know about the other nodes (Pods)? How does the cross-region communication actually work? What Kubernetes resources are used (LoadBalancers, Pods, etc) for the cross region communication? What happens when Kubernetes reschedules a Pod to a different node? Does that get communicated to the other region? Does the other region need to know? It would be great to have some sort of diagram that shows all of this.

Is the control plane only needed for the initial deployment and changes to the deployment? Or is it needed while the cluster is operating?

Can I (or should I) deploy the control plane in the same Kubernetes cluster as one of the data planes?

I’m not too sure of the role of Stargate. If I have application that already works with Cassandra (using the Java datastax driver), do I need Stargate?