【问题标题】:Expose multiple backends with multiple IPs with Kubernetes Ingress resources使用 Kubernetes Ingress 资源公开具有多个 IP 的多个后端
【发布时间】:2017-07-30 10:37:30
【问题描述】:

作为kubernetes/ingress 存储库的示例之一,我通过 nginx 控制器公开了具有静态 IP 和 Ingress 的服务。我有第二个 LoadBalancer 服务,它不受任何在为第一个服务添加新资源后不再正确公开的 Ingress 资源管理(我不明白为什么会这样)。

我尝试添加第二个 Ingress 和 LoadBalancer 服务来分配第二个静态 IP,但我无法让它工作。

我将如何公开第二个服务,最好是使用 Ingress?我需要添加第二个 Ingress 资源还是必须重新配置我已有的资源?

【问题讨论】:

    标签: nginx kubernetes google-compute-engine


    【解决方案1】:

    使用Servicetype: LoadBalancer 以及使用Ingress 通常是相互排斥的公开应用程序的方式。

    当您使用 type: LoadBalancer 创建 Service 时,Kubernetes 会在您的云帐户中创建一个具有 IP 的 LoadBalancer,打开该 LoadBalancer 上与您的 Service 匹配的端口,然后将所有流量定向到该 IP 1 Service。因此,如果您有 2 个 Service 对象,每个对象都有 'type: LoadBalancer' 用于 2 个不同的 Deployments,那么您也有 2 个 IP(每个 Service 一个)。

    Ingress 模型基于通过单个 Ingress Controller 引导流量,该控制器运行类似 nginx 的东西。随着 Ingress 资源的添加,入口控制器重新配置 nginx 以包含新的 Ingress 详细信息。在这种情况下,入口控制器(例如 nginx)将有一个 Service,即 type: LoadBalancer,但 Ingress 资源指向的所有服务都应该是 type: ClusterIP。所有 Ingress 对象的流量将通过 Ingress Controller Service 的 LoadBalancer 的相同公共 IP 流向 Ingress Controller(例如 nginx)Pods。然后来自Ingress 对象的配置详细信息(例如虚拟主机或端口或路由)将确定哪个Service 将获得流量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 2020-09-13
      • 2018-03-24
      • 2021-01-04
      • 1970-01-01
      • 2021-07-09
      • 2016-03-14
      相关资源
      最近更新 更多