我通过nginx控制器公开了一个带有静态IP和Ingress的服务,作为kubernetes/ingress存储库的一个例子 . 我有第二个LoadBalancer服务,它不是由为第一个服务添加新资源后不再正确暴露的任何Ingress资源管理的(我不明白为什么会这样) .
我尝试添加第二个Ingress和LoadBalancer服务来分配第二个静态IP,但我无法让它工作 .
我将如何展示第二项服务,最好使用Ingress?我是否需要添加第二个Ingress资源,还是必须重新配置我已有的资源?
1 回答
将
Service
与type: LoadBalancer
一起使用并使用Ingress
通常是相互排斥的方式来公开您的应用程序 .当您使用
type: LoadBalancer
创建Service
时,Kubernetes会在您的 Cloud 帐户中创建一个具有IP的LoadBalancer,打开该LoadBalancer上与您的Service
匹配的端口,然后将所有流量定向到该IP到1Service
. 因此,如果您有2个Service
对象,每个对象具有'type: LoadBalancer',用于2个不同的Deployment
,那么您也有2个IP(每个Service
一个) .Ingress
模型基于通过运行类似nginx的单个Ingress Controller引导流量 . 随着Ingress
资源的添加,Ingress Controller重新配置nginx以包含新的Ingress
详细信息 . 在这种情况下,Ingress Controller(例如nginx)的Service
将是type: LoadBalancer
,但Ingress
资源指向的所有服务都应该是type: ClusterIP
. 所有Ingress
对象的流量将通过LoadBalancer的相同公共IP流入Ingress ControllerService
到Ingress Controller(例如nginx)Pod
. 然后,Ingress
对象(例如虚拟主机或端口或路由)的配置详细信息将确定哪些Service
将获得流量 .