【问题标题】:kubernetes multi domain dynamic routingKubernetes多域动态路由
【发布时间】:2020-06-01 01:16:45
【问题描述】:

您好,我想知道如何将多个域动态路由到 Kubernetes 中的不同服务,我试图让我的用户将域添加到他们的帐户并基于该域路由到特定服务以呈现他们的网页,但是与他们的域名。我不知道从哪里开始,想知道 Kubernetes 是否可以做到这一点。

【问题讨论】:

    标签: kubernetes google-cloud-platform kubernetes-ingress nginx-ingress


    【解决方案1】:

    由于您已使用 google cloud 标记了该问题,因此我的答案是针对 google cloud。

    对于 HTTP/HTTPS 类型的流量,您可以创建一个入口资源,入口控制器(nginx 或 GKE 入口)将在谷歌云中创建一个 HTTP 负载均衡器。然后,您可以为负载均衡器提供静态 IP。最后,您可以在 DNS 中配置您的域,以便在用户访问您的域时将流量路由到该静态 IP。

    Guide 了解如何创建入口和配置静态 IP。

    Guide关于配置静态IP域名。

    完整的guide 在谷歌云中使用 nginx 入口控制器。

    这是上面nginx指南的架构。

    对于多域用例,您只需扩展上述内容并使用相同的构造配置不同的域。

    【讨论】:

      【解决方案2】:

      假设所有这些服务都是基于 HTTP(s) 的,需要做两件事:

      • 应创建一个ingress 对象,将给定域路由到适当的服务(请参阅https://kubernetes.io/docs/concepts/services-networking/ingress/
      • 必须将适当的记录添加到给定域的 DNS 配置中,(可能是指向您的集群的 CNAME 记录,但这取决于您的服务应该处理所有流量还是只处理其中的一部分)

      【讨论】:

        【解决方案3】:

        您可以创建入口对象以根据主机 URL 路由流量。

         Ex:
         apiVersion: networking.k8s.io/v1beta1
         kind: Ingress
         metadata:
           name: name-virtual-host-ingress
         spec:
            rules:
            - host: foo.bar.com   
              http:
                paths:
                - backend:
                    serviceName: service1
                    servicePort: 80
            - host: bar.foo.com
              http:
                paths:
                  - backend:
                      serviceName: service2
                      servicePort: 80
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-06-20
          • 2020-10-16
          • 1970-01-01
          • 2013-04-09
          • 2021-10-23
          • 2019-12-23
          • 2014-09-18
          相关资源
          最近更新 更多