If you're on AWS and using the AWS Load Balancer Controller then you can map multiple ingresses (either in the same namespace or across namespaces) to a single load balancer via the alb.ingress.kubernetes.io/group.name annotation. This lets you define the ingresses in their own namespaces with standard service definitions. There are some caveats: ingresses need to have distinct routing rules (different hostnames or paths), they can't have conflicting annotations (ex. different security group definitions), and they're probably not safe in a multi-tenant environment if you don't trust everyone who has permission to create ingresses in the cluster.