【问题标题】:How should I setup Traefik on ECS?我应该如何在 ECS 上设置 Traefik?
【发布时间】:2018-07-11 18:25:21
【问题描述】:

简而言之

我已经设法在本地和AWS ECS 上运行Traefik,但现在我想知道我应该如何设置某种负载平衡,以使我的两个具有随机 IP 的服务可供公众使用。

我目前在 ECS 上的设置

[Internet]
    |
[Load balancer on port 443 + ALB Security group on 443]
    |
[Target group on port 443 + Security group from *any* port]
    |
[cluster]
    |
[service1 container ports "0:5000"]

虽然这可行,但我现在想添加另一个容器,例如。 service2 也带有随机端口,例如0:8000。这就是为什么我需要像Traefik 这样的东西。

我做了什么

这是 Toml 文件:

[api]

address = ":8080"

[ecs]

clusters = ["my-cluster"]
watch = true

domain = "mydomain.com"

region = "eu-central-1"
accessKeyID = "AKIA..."
secretAccessKey = "..."

我还在/etc/hosts中添加了主机条目:

127.0.0.1 service1.mydomain.com 127.0.0.1 service2.mydomain.com

还有容器上的相关标签,我可以curl service1.mydomain.com/status 得到200

现在我的最后一点只是以下问题:

  • 应该如何将这一切发布到互联网上? AWS ALB? AWS Network LB?网桥/主机/其他?

【问题讨论】:

    标签: docker amazon-ecs traefik aws-load-balancer


    【解决方案1】:

    AWS ALB 与 AWS 网络 LB 取决于您希望谁处理 SSL。

    • 如果您有通配符证书并且您的所有服务都是同一个域的子域 ALB 可能是一个不错的选择

    • 如果你想使用 Let's encrypt with traefik Network LB 可能是更好的选择

    在这两种情况下,您的设置将如下所示:

        [Internet]
            |
          [LB]
            |
        [Target group]
            |
        [Traefik]
        |       |
    [service1] [service2]
    

    在这两种情况下,最简单的方法是让 traefik ecs 服务自动注册到目标组。

    这可以在服务创建(网络配置部分)时完成,以后不能完成。 Link to documentation

    Screen of configuration console

    【讨论】:

    • 感谢您的帮助。我的所有子域都有通配符证书,但是您能否更具体地说明Traefik 应该如何auto register to the target group?任何指向文档/屏幕截图或更多详细信息的链接都会有所帮助
    • 添加了文档链接和谷歌图片上的截图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    相关资源
    最近更新 更多