gpt4 book ai didi

amazon-web-services - 应用程序负载均衡器在弹性beantalk和kubernetes之间分配

转载 作者:行者123 更新时间:2023-12-02 12:31:45 26 4
gpt4 key购买 nike

我们需要能够根据url路径将请求指向不同的应用程序。在我们的案例中,我们为一个服务有一个 flex beantalk应用程序,为另一个服务有一个kubernetes集群。我们需要能够将请求作为api.example.com/service1路由到 flex beantalk,将api.example.com/service2路由到kubernetes。

我们在SO上遇到了以下问题/答案:
Load balancing across different Elastic Beanstalk applications

在执行了将我们创建的新应用程序负载平衡器指向的目标组与EB环境的自动伸缩组相关联的步骤之后,对/ service1的请求实际上可以正常工作,但只有大约一半的时间。其他时间,请求只是超时而没有收到响应。

为了排除安全组问题,我们暂时向所有流量开放了Elastic Beanstalk实例安全组,但此问题仍然存在。

这是应用程序负载平衡器规则,将所有规则转发给“每个人”目标组。 “所有人”目标组是附加到EB环境的自动伸缩组的新目标组。
application load balancer rules showing forward all to "everybody" target group

这是目标组下已注册的目标,显示3个正常实例。
registered targets

有人能看到我们可能做错了什么导致这些间歇性问题吗?

最佳答案

您需要一个全局负载均衡器来管理两个集群。您可以将代理用作haproxy,envoy之类的全局负载平衡器。现在,在这种情况下,您的dns将指向代理,然后代理将在 flex beantalk和Kubernetes集群之间路由流量。

特使

  static_resources:
listeners:
- address:
socket_address:
address: 0.0.0.0
port_value: 80
filter_chains:
- filters:
- name: envoy.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
codec_type: auto
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: backend
domains:
- "*"
routes:
- match:
prefix: "/service/1"
route:
cluster: service1
- match:
prefix: "/service/2"
route:
cluster: service2
http_filters:
- name: envoy.router
typed_config: {}
clusters:
- name: service1
connect_timeout: 0.25s
type: strict_dns
lb_policy: round_robin
http2_protocol_options: {}
load_assignment:
cluster_name: service1
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: service1
port_value: 80
- name: service2
connect_timeout: 0.25s
type: strict_dns
lb_policy: round_robin
http2_protocol_options: {}
load_assignment:
cluster_name: service2
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: service2
port_value: 80
admin:
access_log_path: "/dev/null"
address:
socket_address:
address: 0.0.0.0
port_value: 8001

Docker文件
FROM envoyproxy/envoy-dev:98c35eff10ad170d550fb5ecfc2c6b3637418c0c

COPY envoy.yaml /etc/envoy/envoy.yaml

Google刚刚推出了Traffic Director,Traffic Director也可以用作全局负载平衡器。观看此conf的 Traffic Director

关于amazon-web-services - 应用程序负载均衡器在弹性beantalk和kubernetes之间分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58150886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com