目前的部署方式是在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?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
通常,您将拥有一个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