ECS 集群 c1 中的一项服务是否可以使用 ECS 服务发现调用集群 c2 中的另一项服务 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html)。由于它们都位于不同的集群中,因此它们也将位于不同的 vpc 中。
我遇到了类似的问题,以下方法对我有用:
我遇到了同样的问题和要求(使用私有 DNS 发现),与我目前认为不可能的情况相反,下面是我在 AWS 环境中整理 2 个 VPC 之间的连接/网络时遵循的所有步骤,以及启动并运行 ECS 服务发现的一些要求,希望这能够澄清:
从此时起,我通过使用
service-discovery
、telnet
或 A-VPC 中运行的另一个任务中的任何其他工具来验证 nslookup
是否在我的第一个 VPC(我们称为 A)中工作。然后,我从 B-VPC 中的实例直接测试到 ping
和 telnet
分配给 A-VPC 中我的任务的私有 IP,正如预期的那样,连接成功,但当尝试使用私有 DNS 时,这是所有我收到错误:Unknown service
(错误可能因使用的工具而异)。深入研究这个问题后,我发现 CloudMap(这是下面用于服务发现的服务之一)只会在您的 VPC 内查询您的 DNS,有关更多信息,您可以查看AWS 提供的注意事项。
一个可能的解决方案是使用网络负载均衡器或类似的设备将连接路由到您的服务,但这有点烦人,因为您可以排除服务发现而只使用负载均衡器解决方案。
您需要在对等连接上启用 dns 解析: AWS 文档