【发布时间】:2020-08-14 18:42:51
【问题描述】:
我在 ECS Fargate 中有 2 个服务正在运行。
我已使用私有 dns 命名空间设置服务发现,因为我的所有服务都在私有子网中。
当我尝试从另一个配置容器中访问我的配置容器时,我收到以下错误。
http://config.qcap-prod:50050/config: 获取 "http://config.qcap-prod:50050/config": 拨号 tcp: 查找 10.0.0.2:53 上的 config.qcap-prod:没有这样的主机
下面是我的 Terraform
resource "aws_service_discovery_service" "config" {
name = "config"
dns_config {
namespace_id = aws_service_discovery_private_dns_namespace.qcap_prod_sd.id
dns_records {
ttl = 10
type = "A"
}
}
health_check_custom_config {
failure_threshold = 1
}
}
是否需要执行其他步骤才能让我使用 Fargate 从 ECS 中的另一个容器访问我的容器?
我的命名空间的 terraform 代码是:
resource "aws_service_discovery_private_dns_namespace" "qcap_prod_sd" {
name = "qcap.prod"
description = "Qcap prod service discovery"
vpc = module.vpc.vpc_id
}
【问题讨论】:
-
您如何处理解析该 DNS 区域的问题?你能分享
aws_service_discovery_private_dns_namespace.qcap_prod_sd的Terraform代码吗?两个服务是否在同一个 VPC 中?您是否为 VPC 的 DNS 启用了 Route53 解析器终端节点(例如172.31.0.2)? -
我已经添加了 Terraform 代码,两个服务都在同一个 VPC 中。我没有 Route53 解析器(我不认为)这是我必须在 vpc 模块中启用的东西吗?
-
这是 VPC 上的默认设置,因此应该启用,除非您正在执行诸如设置 DNS 服务器以使用其他 DNS 服务器(例如在另一个数据中心中)或出于某种原因制作您自己的 DNS 实例的操作。您可以查看是否查看
aws ec2 describe-dhcp-options的输出并检查domain-name-servers是否设置为AmazonProvidedDNS。 -
我的公司 VPC 设置为在另一个数据中心的服务器设置(或我相信的旧 DNS 服务器)上解析 DNS。 @ydaetskcoR 描述的场景。我是否有希望在这种情况下使其工作,而无需更改公司网络 DNS 服务器或他们设置的本地解析器规则?除了公司本地 DNS 服务器中设置的内容之外,我是否需要在 AWS 中设置其他资源,或者我可以在任务中执行什么操作以使其了解 Route 53 私有区域并尝试在那里解决查询?
-
@Dude0001 这可能值得一个单独的问题,您可能希望在其中链接回它。最终,我认为答案将涉及将区域的 DNS 请求转发回 AWS,但如果您可以在问题中提供更多信息,那么应该有人能够更全面地回答。
标签: amazon-web-services terraform amazon-ecs aws-fargate service-discovery