前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Traefik入门

Traefik入门

作者头像
码客说
发布2021-03-02 10:00:07
1K0
发布2021-03-02 10:00:07
举报
文章被收录于专栏:码客

前言

traefiknginx 一样,是一款优秀的反向代理工具,或者叫 Edge Router。至于使用它的原因则基于以下几点

  • 无须重启即可更新配置
  • 自动的服务发现与负载均衡
  • docker 的完美集成,基于 container label 的配置
  • 漂亮的 dashboard 界面
  • metrics 的支持,对 prometheusk8s 的集成

安装Docker

安装

代码语言:javascript
复制
apt install docker.io
apt install docker-compose

查看版本

代码语言:javascript
复制
docker --version
docker-compose --version

使用docker-compose启动

新建yaml文件

代码语言:javascript
复制
vi traefik-v2.1.yaml

添加如下内容

代码语言:javascript
复制
version: '3'
services:
  reverse-proxy:
    image: traefik:2.1.6
    # Enables the web UI and tells Traefik to listen to docker
    # 启用webUI 并告诉Traefile去监听docker的容器实例
    command: --api.insecure=true --providers.docker
    ports:
      # traefik暴露的http端口
      - "8888:80"
      # webUI暴露的端口(必须制定--api.insecure=true才可以访问)
      - "8080:8080"
    volumes:
      # 指定docker的sock文件来让traefik获取docker的事件,从而实现动态负载均衡
      - /var/run/docker.sock:/var/run/docker.sock

注意

8888:80是代理所有的8888端口的服务转发到提供服务的端口号为80的docker服务 8080:8080是管理页面的服务 前面是对外的端口号不能被占用

使用docker-compose创建集群

代码语言:javascript
复制
docker-compose -f traefik-v2.1.yaml up -d reverse-proxy

出现如下则创建成功

Status: Downloaded newer image for traefik:2.1.6 Creating root_reverse-proxy_1 … Creating root_reverse-proxy_1 … done

查看使用docker-compose启动的应用

代码语言:javascript
复制
docker-compose -f traefik-v2.1.yaml ps

信息如下:

image-20210223143452958
image-20210223143452958

查看Traefik官方Dashboard

http://www.psvmc.cn:8080/

或者查看接口返回的

http://www.psvmc.cn:8080/api/rawdata

显示如下

image-20210223143951986
image-20210223143951986

创建路由及测试

创建路由

Traefik来检测新服务并为你创建一个路由

创建一个新服务

代码语言:javascript
复制
vi test-service.yaml

内容如下:

代码语言:javascript
复制
version: '3'
services:
  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`test.psvmc.cn`)"

创建服务

代码语言:javascript
复制
docker-compose -f test-service.yaml up -d whoami

成功显示如下

image-20210223145039670
image-20210223145039670

查看新创建的服务

代码语言:javascript
复制
docker-compose  -f test-service.yaml ps

显示如下

image-20210223145145086
image-20210223145145086

再次查看traefik中的路由信息(就会发现服务自动加载进去了) 其实有点儿类似kong 的路由,只是traefik会自动监听docker的事件

查看配置后生成的JSON配置

这个和图形化界面看到的是一致的

代码语言:javascript
复制
curl -s  "http://localhost:8080/api/rawdata" | python -m json.tool

路由的方式可以参考以下的几种

image-20210223152946409
image-20210223152946409

测试traefik相关功能

测试

代码语言:javascript
复制
curl -H Host:test.psvmc.cn http://localhost:8888

显示如下

image-20210223150456836
image-20210223150456836

这样我们就可以看出

Host为test.psvmc.cn的请求都会从whoami的服务响应

或者我们也可以映射过域名后,在服务器外访问

http://test.psvmc.cn:8888/

服务扩充

我们下载查看服务,会发现whoami的Servers的数量是1

image-20210223150818975
image-20210223150818975

扩充

代码语言:javascript
复制
docker-compose -f test-service.yaml up -d --scale whoami=2

成功信息如下

image-20210223151126406
image-20210223151126406

这时候负载就是两个了

image-20210223151212225
image-20210223151212225

点击上面的那一条数据,我们可以看到两个服务的负载

image-20210223151737408
image-20210223151737408

我们在测试一下

代码语言:javascript
复制
curl -H Host:test.psvmc.cn http://localhost:8888

会发现响应的请求在两个负载上来回跳

结果1

image-20210223151916198
image-20210223151916198

结果2

image-20210223152027573
image-20210223152027573
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 安装Docker
  • 使用docker-compose启动
  • 创建路由及测试
    • 创建路由
      • 测试traefik相关功能
        • 服务扩充
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档