The best deployment option will depend on the organization’s needs, requirements, and resources. Resiliency and redundancy also increase complexity and costs.
There’s a lot of helpful information/resources here that should help you find the best option for you: Reference architectures | GitLab
We have a Kubernetes setup, and have chosen not to put GitLab into that because we use GitLab to bootstrap it, so putting GitLab into it would create a catch 22, where each part has to work before the other can come up.