Exposição de um ponto de extremidade do serviço TCP K8s para a Internet pública sem um balanceador de carga

Então, estou trabalhando em um projeto que envolve o gerenciamento de muitas instâncias do postgres dentro de um cluster k8s. Cada instância é gerenciada usando umStateful Set com umService para comunicação em rede. Eu preciso expor cadaService à Internet pública via DNS na porta 5432.

A abordagem mais natural aqui é usar o k8sLoad Balancer recurso e algo comoexternal dns para mapear dinamicamente um nome DNS para um ponto de extremidade do balanceador de carga. Isso é ótimo para muitos tipos de serviços, mas para bancos de dados há uma limitação maciça: o tempo limite de conexão. Os AWS ELBs têm um limite de tempo limite inativo máximo de 4000 segundos. Existem muitas consultas / transações analíticas de longa duração que facilmente excedem esse período de tempo, sem mencionar operações potencialmente de longa duração comopg_restore.

Então, preciso de algum tipo de solução que permita solucionar as limitações dos balanceadores de carga.Node IPs estão fora de questão, pois precisarei da porta5432 exposto para todas as instâncias do postgres no cluster.Ingress também parece menos do que o ideal, pois é um proxy da camada 7 que suporta apenas HTTP / HTTPS. Eu já vi soluções alternativas com o nginx-ingress envolvendo alguma trapaça no configmap, mas estou um pouco preocupado em me comprometer com hacks como esse para um projeto grande.ExternalName é intrigante, mas mesmo que eu consiga encontrar uma documentação melhor, acho que pode acabar tendo limitações semelhantes àsNodeIP.

Qualquer sugestão seria muito apreciad