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