K8S 集群中使用一个 Loadbalancer 暴露整个集群内所有服务的设想
在 K8s 中,将服务的类型设置为 LoadBalance ,该负载均衡器就会获得一个公开的独一无二的IP,并将所有的连接重定向到 Service
然后就可以通过负载均衡器的IP地址访问该服务.
但是 LoadBalancer 只能为一个服务提供 一个 公共IP,现实中我们有多个服务,每个服务都暴露一个公网 IP, 太浪费资源.
解决方案有两种:
一: 创建一个 LoadBalancer 的 Service,这个Service 就是一个 GateWay 服务,用来进行 K8S 集群内部的 服务转发
我们知道,Service 在 K8S 集群内部是可以访问的.二: 创建 Ingress 资源:
Ingress 可以看做是一个 网关,可以根据 请求主机名和路径决定请求转发到哪个服务.
实际上,在实际生产中,我们更偏向使用 自己的 网关服务(比如 geteway )作为 一个 LoadBalancer .