This document explains the basic ideas behind Custom Kubernetes Regions in the PlanetScaleDB context.
In the context of PlanetScaleDB, a Custom Kubernetes Region is a Kubernetes cluster under your control where PlanetScaleDB can deploy a cluster. Any databases you create in your Custom Region deploy inside your Kubernetes region, but PlanetScaleDB administers them. Your application connects to the Vitess deployment inside your Kubernetes cluster to access databases in the Custom Region. Your Kubernetes cluster may reside on a cloud provider or it may be on-premises.
PlanetScale clusters correspond to Kubernetes clusters, which PlanetScale uses to run fully-managed databases. However, some customers prefer to manage their own Kubernetes clusters. By creating a Custom Kubernetes Region, you can gain the benefits of having PlanetScaleDB manage your database while maintaining control over the administration of your Kubernetes cluster.
When you create a Custom Kubernetes Region, you run a script that deploys the PlanetScaleDB operator to your Kubernetes cluster and provides PlanetScaleDB with the details of your cluster. When you deploy a database to your Custom Kubernetes Region, PlanetScaleDB connects to the operator in your cluster and uses it to deploy the Vitess components and MySQL database instances that make up your PlanetScaleDB database. When you connect an application to your database, the application is connecting to the Vitess components inside of your Kubernetes cluster.