当前位置: 首页 > news >正文

K8S系列文章之 Traefik快速入门

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

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

快速开始

一个使用 Docker 的简单示例

quickstart-diagram

使用 Docker Provider 启动 Traefik

创建一个 docker-compose.yml 文件,你将在其中定义一个使用官方的 Traefik 镜像的反向代理服务:

已复制version: '3'services:reverse-proxy:# 官方的 Traefik 2.0 Docker 镜像image: traefik:v2.0# 开启 web UI 并且告诉 Traefik 监听 Dockercommand: --api.insecure=true --providers.dockerports:# HTTP 端口- "80:80"# Web UI 端口(通过 --api.insecure=true 启用)- "8080:8080"volumes:# 这样 Traefik 可以监听 Docker 事件- /var/run/docker.sock:/var/run/docker.sock

就这样现在就可以启动 Traefik 了!

使用以下命令启动你的反向代理服务:

docker-compose up -d reverse-proxy

然后可以打开浏览器,访问 http://localhost:8080/api/rawdata 接口来查看 Traefik 的 API 原始数据。

Traefik 检查新服务并创建路由

现在我们已经启动并运行了 Traefik 实例,接下来我们来部署一个新的服务,添加到上面的 docker-compose.yml 文件:

# ...whoami:# 一个通过 API 暴露其 IP 地址的容器image: containous/whoamilabels:- "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"

上面我们定义了 whoami:一个简单的 web 服务,它会输出部署的机器的相关信息(IP 地址、主机等等)。然后我们可以使用以下命令启动 whoami 服务:

docker-compose up -d whoami

启动完成后,然后返回浏览器,查看 http://localhost:8080/api/rawdata 接口的数据,正常就可以看到 Traefik 已自动检测到新容器并更新了相应的配置。

当 Traefik 检测到新服务时,它会创建相应的路由,然后我们可以访问相应的路由(我们这里使用 curl):

curl -H Host:whoami.docker.localhost http://127.0.0.1

然后会输出如下的一些信息:

Hostname: 3cca68434466
IP: 127.0.0.1
IP: 172.21.0.3
#...

更多实例?Traefik 对他们进行负载均衡

我们可以使用以下命令来对 whoami 服务进行扩容:

docker-compose up -d --scale whoami=2

扩容完成后可以查看当前我们的服务运行的容器状况:

docker-compose psName                          Command               State                     Ports                   
-----------------------------------------------------------------------------------------------------------------
quick-start_reverse-proxy_1   /entrypoint.sh --api.insec ...   Up      0.0.0.0:80->80/tcp, 0.0.0.0:8080->8080/tcp
quick-start_whoami_1          /whoami                          Up      80/tcp                                    
quick-start_whoami_2          /whoami                          Up      80/tcp   

同样返回到浏览器中查看 http://localhost:8080/api/rawdata 接口可以看到 Traefik 已经自动检查到了新的容器实例。

最后,我们运行以下命令两次,查看 Traefik 在两个实例之间的负载均衡:

curl -H Host:whoami.docker.localhost http://127.0.0.1

我们可以在输出信息中看到如下交替的信息显示:

Hostname: a656c8ddca6c
IP: 172.27.0.3
#...
Hostname: s458f154e1f1
IP: 172.27.0.4
# ...

不过,最后不要忘记了还可以去查看下 Traefik 的 Web UI,通过访问 http://localhost:8080 即可:

traefik dashboard

http://www.lryc.cn/news/120087.html

相关文章:

  • RabbitMQ在CentOS下的安装
  • 为什么金鸣识别不做成离线版?
  • 什么是面向对象
  • 记一次前端直接上传图片到oss报错
  • 数据库管理-第九十八期 统计信息是多么重要(20230812)
  • 山西电力市场日前价格预测【2023-08-13】
  • AtCoder Beginner Contest 313D题题解
  • mybatis 中的<![CDATA[ ]]>用法及说明
  • 从零学算法34
  • qiankun-微前端--vue2
  • Win7累积补丁更新包_UpdatePack7R2-23.8.10
  • 【二叉树】1-5,理论基础、前中后序遍历的递归法和迭代法、层序遍历
  • Mybatis-plus动态条件查询QueryWrapper的使用
  • Redis安装配置远程连接
  • pycharm中配置conda
  • matlab解常微分方程常用数值解法1:前向欧拉法和改进的欧拉法
  • SQL | 计算字段
  • leetcode做题笔记67
  • fastadmin 自定义搜索分类和时间范围
  • Oracle Data Redaction与Data Pump
  • 设计模式(6)原型模式
  • pywinauto结合selenium实现文件上传
  • 【Java多线程学习7】Java线程池技术
  • VMware虚拟机NAT模式Ubuntu无法上网解决方案
  • Linux中无法忘记mysql密码处理办法
  • vue 使用 el-upload 上传文件(自动上传/手动上传)
  • 服务器遭受攻击之后的常见思路
  • C语言学习笔记 使用vscode外部console出现闪退-12
  • 从Spring源码看Spring如何解决循环引用的问题
  • 03 - 通过git log可以查看版本演变历史