我正在尝试使用 traefik 作为我的 docker-swarm 托管服务器上我的一台服务器的负载均衡器。
我非常关注本教程:https://docs.traefik.io/user-guide/swarm-mode/
分解:
我用
初始化 docker swarmdocker swarm init
创建覆盖网络
docker network create --driver overlay traefik-net
启动traefik服务
docker service create \
--name traefik \
--constraint=node.role==manager \
--publish 80:80 --publish 8080:8080 \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--network traefik-net \
traefik \
--docker \
--docker.swarmmode \
--docker.domain=traefik \
--docker.watch \
--web
所以,我试图通过 localhost:8080 访问 traefik-dashboard,但页面根本没有加载。
Docker 正在监听这些端口:
sudo netstat -tulpen | grep dockerd
tcp6 2 0 :::8080 :::* LISTEN 0 56713 4102/dockerd
tcp6 1 0 :::80 :::* LISTEN 0 55724 4102/dockerd
所以我希望在 localhost:8080 上能给我 traefik 仪表板。
有人能指出我在这里遗漏了什么吗?
请问这两个命令的结果是什么:
curl 127.0.0.1:8080
和curl localhost:8080
?
默认情况下不公开 Traefik 仪表板。它必须首先通过配置激活。 请参阅:https://doc.traefik.io/traefik/operations/dashboard/#secure-mode
到目前为止,当您尝试通过服务标签管理路由时,Docker Swarm 中的 Traefik 有点不稳定。当您尝试调试您的东西并最终发现 Traefik 为 Swarm 中的服务检索的 IP 是完全错误的时,这可能真的很伤脑筋。为了更加稳定,请为您的路由使用文件提供程序。