【问题标题】:Service discovery using ECS Fargate使用 ECS Fargate 进行服务发现
【发布时间】: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


【解决方案1】:

解决方法是添加

module "vpc" {
  enable_dns_support = true
  enable_dns_hostnames = true
}

在 vpc 模块中的模块块中,以允许在我的 VPC 中解析 DNS 主机名

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 2019-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    相关资源
    最近更新 更多