【问题标题】:How to expose multiple kubernetes services trough single azure load balancer?如何通过单个 azure 负载均衡器公开多个 kubernetes 服务?
【发布时间】:2018-06-26 22:23:59
【问题描述】:

我想通过单个负载均衡器公开多个服务。每个服务都指向一个 pod。

到目前为止,我尝试过:

kubectl expose <podName> --port=7000 

并在 Azure 门户中手动设置负载平衡规则或入站 Nat 规则,指向暴露的 pod。 到目前为止,我可以使用外部 IP 和指定端口连接到 pod。

【问题讨论】:

    标签: azure kubernetes azure-load-balancer azure-aks


    【解决方案1】:

    取决于您希望如何在同一 IP 上分离服务。我想到的两种方法是:

    • 使用 NodePort 服务,然后将 LB 中的一些端口映射到集群节点上的该部分。这样可以按端口分隔。
    • 在我看来更有趣的方式是使用 Ingress/IngressController。您将只在 80 和 443 等标准端口上公开 IC,然后它将通过主机名和 uri 映射到您的服务

    【讨论】:

    • 我该怎么做?你能解释一下吗?我该如何做这些映射?
    【解决方案2】:

    在 Azure 容器服务中,Azure 会使用 Load Balancer 来暴露 k8s 服务,如下所示:

    root@k8s-master-E27AE453-0:~# kubectl get svc
    NAME         CLUSTER-IP    EXTERNAL-IP     PORT(S)          AGE
    jasonnginx   10.0.41.194   52.226.33.200   8080:32011/TCP   4m
    kubernetes   10.0.0.1      <none>          443/TCP          11m
    mynginx      10.0.144.49   40.71.230.60    80:32366/TCP     5m
    yournginx    10.0.147.28   40.71.226.23    80:32289/TCP     4m
    root@k8s-master-E27AE453-0:~# 
    

    通过 Azure 门户,检查 Azure 负载均衡器前端 IP 配置(不同的 IP 地址):

    ACS 将创建Load Balancer rules 并添加rontend IP 地址自动

    如何通过单个 azure 负载公开多个 Kubernetes 服务 平衡器?

    ACS 通过该 Azure 负载均衡器公开 k8s 服务,您的意思是要使用单个公共 IP 地址公开 k8s 服务吗?

    如果你想用单个公共 IP 地址公开 k8s 服务,正如 Radek 所说,也许你应该使用 Nginx Ingress Controller

    入口控制器的工作方式如下:

    【讨论】:

      【解决方案3】:

      谢谢各位。我想我已经找到了解决我的问题的可行方法。我应该更具体地说明我将要做什么。

      我想通过 UDP 托管游戏服务器。所以任何 kubernetes 入口控制器都不是一个真正的选择,因为它们很少支持 UDP 路由。 我也不需要在单台机器上托管大量服务每个单个节点 1-4 个 pod 可能是最大值。

      我发现了关于使用:

      hostNetwork: true 
      

      在 yaml 配置中,它实际上非常适合这种情况。 我直接从主机节点获取 IP。然后我可以在负载均衡器中选择匹配的节点并创建 NAT 或负载均衡规则

      【讨论】:

      • 能否扩展一下这个解决方案,比如发布完整的 yaml 来配置服务?
      【解决方案4】:

      创建多个nodePort类型的服务,并修复nodePort。 和云负载均衡器,设置多个监听组。监听端口与服务的节点端口相同,目标为所有工作节点。

      【讨论】:

        猜你喜欢
        • 2021-03-17
        • 2021-01-27
        • 2017-12-22
        • 1970-01-01
        • 1970-01-01
        • 2022-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多