开发者社区 问答 正文

AWS VPC - k8s - 负载平衡

目前的部署方式是在EC2上部署应用程序。我尝试将容器化应用程序部署到VPC的新方法。

以旧的方式,AWS会将流量路由aaa.bbb.com到vpc-ip:443ELB,这将进一步将其路由到ASG,private subnet:443并且app可以正常工作。

在图片中有k8s,交通流量如何?

我试图弄清楚我是否可以在ELB上使用多个端口和相应的dns,并将流量路由到工作节点上的某个端口。

xxx.yyy.com -> vpc-ip:443/ -> ec2:443/
aaa.bbb.com -> vpc-ip:9000/ -> ec2:9000/
是否可以在同一个VPC上使用k8s?

展开
收起
k8s小能手 2019-02-22 15:47:33 2573 分享 版权
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    通常,您将拥有一个AWS Load-balancer实例,该实例将具有多个K8工作者作为具有特定端口的后端服务器。在进入工作节点的流量之后,K8内部的网络将接受这项工作。

    假设您已将两个K8S服务设置为负载均衡器,分别为您的两个域使用端口38473和38474:

    xxx.yyy.com -> AWS LoadBalancer1 -> Node1:38473 -> K8s service1 -> K8s Pod1

                                 -> Node2:38473 -> K8s service1 -> K8s Pod2

    aaa.bbb.com -> AWS LoadBalancer2 -> Node1:38474 -> K8s service2 -> K8s Pod3

                                 -> Node2:38474 -> K8s service2 -> K8s Pod4

    上面这个简单的解决方案需要您创建不同的服务作为负载均衡器,这会增加您的成本,因为它们是实际的AWS负载均衡器实例。要降低成本,您可以ingress-controller在群集中拥有一个实例并编写ingress配置。这只需要一个实际的AWS负载均衡器来完成您的网络:

    xxx.yyy.com -> AWS LoadBalancer1 -> Node1:38473 -> Ingress-service -> K8s service1 -> K8s Pod1

                                 -> Node2:38473 -> Ingress-service -> K8s service1 -> K8s Pod2

    aaa.bbb.com -> AWS LoadBalancer1 -> Node1:38473 -> Ingress-service -> K8s service2 -> K8s Pod3

                                 -> Node2:38473 -> Ingress-service -> K8s service2 -> K8s Pod4
    2019-07-17 23:29:09
    赞同 展开评论