Kubernetes怎么实现部署应用的端口暴露?
背景:
如题,现在有一个在Kubernetes上部署好的服务器应用(私有内网集群)环境,需要通过Pod的一个端口进行通信。
客户端应用在一台能够和集群物理机网络连通的机器上,需要连接到这个服务器应用所在Pod的指定端口。
每个客户端对应一套部署,也就是需要连接不同的服务器应用,一对一的C/S服务。
对于客户端来说,连接的IP和端口最好是无需修改的,一劳永逸。
疑问:
目前的实现方法是,为每个服务器应用包装一个Service,并通过NodePort、DaemonSet的nodeSelector的方法,绑定到一台固定的物理机上,通过固定物理地址端口转发到Service,从而进一步转发到Pod内。
但是这样绑定太麻烦了,而且用户数量一旦达到一定规模,需要为每个用户绑定一个Service,可维护性弱。
查了一下资料,发现Ingress(例如Nginx-Ingress,一般只转发Http/Https,但也可以实现TCP/UDP转发)似乎可以做到。
想问一下大神们,有没有比较好的实现方案?