在Docker Swarm上部署Traefik2.x

作者: wavesheep<wavesheep0216@gmail.com>
版权协议: CC 4.0 BY-SA
转载请保留链接

前言

最近,我将我的个人项目的服务迁移至了Docker Swarm。经过一番比较我决定使用Traefik2.x作为我的反向代理,负载均衡工具。由于目前主流docker集群是k8s, 导致找不到太多的资料,我在这上面花费了颇多时间,因此我决定写下这篇教程帮助大家快速部署。

这篇教程不会讲解docker swarm的部署,我的假设是你有一个正在工作的docker swarm集群。

网络配置

创建配置文件之前的第一件事是创建一个docker swarm overlay网络,Traefik将使用该网络来监视要公开的服务。命令如下:

docker network create -d overlay traefik-net

安装Traefik

现在,我们创建docker compose file文件来安装Traefik,下面是我认为部署有效Traefik实例所需的最小配置。

version: '3'

services:
  reverse-proxy:
    image: traefik:v2.3.1
    command:
      # 启用swarm模式支持
      - "--providers.docker.swarmMode=true"
      # 默认不公开容器
      - "--providers.docker.exposedbydefault=false"
      # 为traefik-net网络启用代理
      - "--providers.docker.network=traefik-net"
      # 创建名为`web`的入口点,并为其暴露于80端口。该入口点会指示其它容器
      # 在哪个端口公开,详情见下文应用部署示例
      - "--entrypoints.web.address=:80"
    ports:
      - 80:80
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - traefik-net
    deploy:
      placement:
        constraints:
          - node.role == manager

networks:
  traefik-net:
    external: true

参考命令:

docker stack deploy traefik -c traefik.yml

应用部署示例

下面我以tutum/hello-world作为部署示例,部署成功将会在在页面上显示“hello world”。配置如下:

version: '3'
services:
  helloworld
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值