gpt4 book ai didi

docker - 使用traefik 2在同一容器上的多个路由器和服务

转载 作者:行者123 更新时间:2023-12-02 18:44:58 24 4
gpt4 key购买 nike

我目前正在尝试让traefik在单个容器上使用多个路由器和服务,这是行不通的,我也不知道这是否是有意的。

为什么?

具体来说,我正在使用gitlab omnibus容器,并希望在omnibus容器内使用/访问多个服务,因为gitlab不仅提供“gitlab网站”。

我尝试了什么?

我只是尝试通过标签将另一个路由器添加到我的docker compose文件中

这就是我所拥有的:

labels:
- "traefik.http.routers.gitlab.rule=Host(`gitlab.example.com`)"
- "traefik.http.services.gitlab.loadbalancer.server.port=80"

这就是我要的:
labels:
- "traefik.http.routers.gitlab.rule=Host(`gitlab.example.com`)"
- "traefik.http.services.gitlab.loadbalancer.server.port=80"
- "traefik.http.routers.registry.rule=Host(`registry.gitlab.example.com`)"
- "traefik.http.services.registry.loadbalancer.server.port=5000"

这是行不通的,因为在这种情况下traefik可能会与路由到哪个服务的内容混淆,并且我找不到找到一种机制来准确告知traefik哪个路由器去了哪个服务。

这是否有可能,或者我只是缺少一点traefik魔术?

最佳答案

我找到了我的问题的解决方案。

我确实确实错过了一点:

  • traefik.http.routers.myRouter.service = myService

  • 有了这个标签,我可以将路由器指向特定的服务,并且应该能够将多个服务添加到一个容器中:

    labels:
    - "traefik.http.routers.gitlab.rule=Host(`gitlab.example.com`)"
    - "traefik.http.routers.gitlab.service=gitlab"
    - "traefik.http.services.gitlab.loadbalancer.server.port=80"
    - "traefik.http.routers.registry.rule=Host(`registry.gitlab.example.com`)"
    - "traefik.http.routers.registry.service=registry"
    - "traefik.http.services.registry.loadbalancer.server.port=5000"

    在这里,每个路由器都被明确地指向特定的服务,该服务通常是隐式发生的。

    关于docker - 使用traefik 2在同一容器上的多个路由器和服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59856722/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com