6

 简而言之

我已经设法在Traefik本地运行,AWS ECS但现在我想知道我应该如何设置某种负载平衡以使我的两个具有随机 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? 网桥/主机/其他?
4

1 回答 1

5

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

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

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

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

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

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

这可以在服务创建(网络配置部分)中完成,以后无法完成。链接到文档

配置控制台屏幕

于 2018-07-12T08:52:56.460 回答