【问题标题】:Can I assign a long-term public DNS name to a Fargate task within a ECS?我可以为 ECS 中的 Fargate 任务分配长期公有 DNS 名称吗?
【发布时间】:2020-10-22 20:07:19
【问题描述】:

我正在尝试基于 ECS 和 Fargate 的新的简单部署设置。我创建了一个集群和一个任务定义。没有 ELB,就没有服务。

在每次部署时,我只创建一个新任务(任务定义实例)。

我的问题是这个正在运行的Task分配了一个公网IP,每次重启Task都不一样:

如果我在上面添加一个 ELB,则会分配一个外部 DNS 名称而不是公共 IP。

有没有办法在我的简单设置(无 ELB)中确保长期的外部 DNS 名称,以便我可以依赖它?

【问题讨论】:

    标签: amazon-web-services amazon-ecs aws-fargate elastic-ip


    【解决方案1】:

    您不希望将 DNS 主机名分配给 Fargate 任务,主要是因为分配的 IP 地址不是静态的。

    对于其他服务,您通常会为资源分配弹性 IP 地址,但 Fargate 目前不支持此功能。

    因此,每当您执行将替换容器的操作(例如更新任务定义)时,公共 IP 地址将被添加到亚马逊拥有的公共 IP 地址池中,并为下一个容器分配一个新地址.

    如果可能的话,我建议您添加一个 ELB,否则您需要在每次容器启动时自动轮换 DNS 主机名。

    【讨论】:

    • 听起来很合理,谢谢,我可能会走这条路。你说“Fargate 不支持这个”。那么分配给任务的弹性网络接口呢?不是提供了获取外部DNS的方法吗?
    • 容器的启动不支持在任务启动时添加EIP的配置,这里有一个未解决的问题:github.com/aws/containers-roadmap/issues/311。您可以尝试添加一个弹性 IP,但由于它不受官方支持,但您将负责由此产生的任何问题(例如在容器被删除之前解除 EIP 的关联)
    猜你喜欢
    • 1970-01-01
    • 2020-01-01
    • 2019-05-14
    • 2018-07-26
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 2021-07-28
    • 2018-10-13
    相关资源
    最近更新 更多