我有一台专用服务器,其中安装了Rancher服务器和Rancher客户端,用于托管某些dockerized服务。

我已经成功安装了Traefik,并使用Rancher API后端对其进行了配置,并且它反向代理了我的服务,将它们托管在HTTPS之后,并且一切正常。

但是我仍然可以通过htttp://12.34.56.78:8080访问Rancher服务器。我也想在启用了https的情况下将Rancher服务器放在Traefik后面。

我尝试使用以下方式启动Rancher服务器:

sudo docker run -d \
  -v /data/rancher/server/data:/var/lib/mysql \
  --restart=unless-stopped \
  -p 8080:8080 \
  -l traefik.frontend.rule=Host:rancher.mydomainname.com \
  -l traefik.enable=true \
  -l traefik.backend=rancher \
  -l traefik.default.protocol=http \
  -l traefik.port=8080 \
  rancher/server:v1.6.12

(以与我配置所有其他服务相同的方式),但是Traefik不会选择它,因为(我认为)Rancher服务器未出现在Traefik正在监视的Rancher API请求中(因为Rancher服务器是在Rancher外部启动且未托管的)通过它)。

来自Rancher Active Proxy,这是该工具it was supported

如果我的推理是正确的,那么Traefik不能以这种方式“拾取” Rancher服务器,我在想的另一种解决方案是,也许我必须为Rancher服务器创建一个单独的[file]部分,并将其添加到Traefik .toml中。文件...

这是实现我想要的目标的正确方法,还是有更好的方法来实现此目标?

谢谢!

最佳答案

我聚会晚了将近2年,但我刚开始使用ranchertraefik后端来启动[docker]

Rancher 的docker-compose文件:

version: '3'

services:

  web:
   image: rancher/rancher:latest
   labels:
     traefik.enable: true
     traefik.backend: rancher
     traefik.frontend.entryPoints: http,https
     traefik.frontend.passHostHeader: true
     traefik.frontend.rule: "Host:rancher.mydomain.com"
     traefik.backend.port: 80
     traefik.port: 80
   restart: unless-stopped

也许这对绊倒这个问题的人很有用。

关于docker - 我可以通过托管的Traefik容器为Rancher Server服务吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47723567/

10-16 16:46