Rancher部署Traefik实现微服务的快速发现
2017-09-11 00:00
721 查看
摘要: Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。本文将向你展示如何在Rancher上简单快速地部署Træfik,实现微服务的快速发现。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/137f607f4199f1d4c3c3fdca180bebf0.png)
无需安装其他依赖,通过Go语言编写的单一可执行文件
支持 Rest API
多种后台支持:Rancher、Docker、Swarm、Kubernetes、Marathon、Mesos、Consul、Etcd,并且还会更多
后台监控,可以监听后台变化进而自动化应用新的配置文件设置
配置文件热更新。无需重启进程
正常结束http连接
后端断路器
轮询,rebalancer 负载均衡
Rest Metrics
支持最小化 官方 docker 镜像
后台支持SSL
前台支持SSL(包括SNI)
清爽的AngularJS前端页面
支持Websocket
支持HTTP/2
网络错误重试
支持Let’s Encrypt (自动更新HTTPS证书)
高可用集群模式
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/5afb056288e4244d69e5131e9215334d.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/f21472a2b7b8b0ca5800f3c855c45b60.png)
以上内容转自:https://traefik.cn
PS:专机专用功能,目前只适用于 Rancher 自动调度容器。
一、运行 Rancher Server 并添加 Rancher-Agent 专机专用节点
通过http://rancher-server:8080 地址登录 WEB;
功能定位到 基础设施|主机,并点击添加主机,复制生成的命令来添加一台 Rancher-Agent;
主机成功添加后,页面定位到 基础设施|主机 ,找到需要的主机,在主机视图的右上角,点击三个点的省略号,再点击编辑;
在主机编辑视图中,分别在标签与容器标签需求中添加 traefik_lb=true;
PS:第一个标签:Traefik 服务在启动时会检查主机是否有 traefik_lb=true 标签,只有带有这个标签的主机才能安装Traefik服务。
第二个容器标签需求:这个就是专机专用的功能,通过设置 traefik_lb=true 这个标签,只有带有 traefik_lb=true 标签的服务才能运行到这个节点上。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/b621b363a02340714e1291952e06dec5.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/ac0e994d7e14ddb1d598affe5e2a79eb.png)
二、进入商店(Catalog)搜索并安装Traefik应用
标签设置好之后,进入商店搜索Traefik并安装;
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/5a749c9ba6d5bf51cf16fc5c8a09f86d.png)
点击查看详情进入配置界面,这里我们把 http port 端口改为80 ,其他配置保持默认。最后点击启动;
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/8a584d2d16bae5883b5b5f3a8b96a863.png)
进入 应用|用户 视图,可以看到Traefik应用已正常运行;
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/3a86dddc24493175632e9938fefd1e50.png)
进入 基础架构|主机 视图下,可以看到Traefik运行在指定主机上;
三、运行 demo 应用
新建一个名为 demo 的空应用栈;
在 demo 中添加一个名为 nginx 的服务,把数量设置为4,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/a7d0ea3f6aeda0d444cee194d9b96b57.png)
在标签设置中,添加如下几条标签:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/68c5ec21cc4301b87727fb88de90db2c.png)
traefik.enable = true 可以理解为是否把此服务注册到traefik的一个开关; traefik.domain = test.local 一个适用于所有服务访问的主域名,可以设置多个用逗号隔开;traefik.alias = nginx 服务别名,可以理解为主域名下的二级域名,可以设置多个用逗号隔开;traefik.port = 80 告诉traefik 服务暴露的端口号;
Traefik默认强制开启健康检查,所有只有健康的服务才会被注册到Traefik上。在健康检查中配置健康检查
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/9cf9be07269b512be8f0be5bb577311a.png)
服务正常运行
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/51731f557420b6721bdf07e33ed525b8.png)
四、demo-nginx 服务配置
Traefik有服务管理控制台,默认端口8000。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/56b69b982a35b567dba993444908f739.png)
在控制台中可以看到访问地址:nginx.demo.test.local,nginx.test.local,以前当前后端 健康server 数目
测试访问:nginx.demo.test.local,nginx.test.local
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/c59ee0707bc01beaf9bf60c496db8b05.png)
9月27日,北京海航万豪酒店,容器技术大会Container Day 2017即将举行。
CloudStack之父、海航科技技术总监、华为PaaS部门部长、恒丰银行科技部总经理、阿里云PaaS工程总监、民生保险CIO······均已加入豪华讲师套餐!
11家已容器落地企业,15位真·云计算大咖,13场纯·技术演讲,结合实战场景,聚焦落地经验。免费参会+超高规格,详细议程及注册链接请戳
Traefik 是什么?
Traefik 是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。它支持多种后台 (Rancher、Docker、Swarm、Kubernetes、Marathon、Mesos、Consul、Etcd、Zookeeper、BoltDB、Rest API、file…) 来自动、动态的刷新配置文件,以实现快速地服务发现。![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/137f607f4199f1d4c3c3fdca180bebf0.png)
特性
它非常快无需安装其他依赖,通过Go语言编写的单一可执行文件
支持 Rest API
多种后台支持:Rancher、Docker、Swarm、Kubernetes、Marathon、Mesos、Consul、Etcd,并且还会更多
后台监控,可以监听后台变化进而自动化应用新的配置文件设置
配置文件热更新。无需重启进程
正常结束http连接
后端断路器
轮询,rebalancer 负载均衡
Rest Metrics
支持最小化 官方 docker 镜像
后台支持SSL
前台支持SSL(包括SNI)
清爽的AngularJS前端页面
支持Websocket
支持HTTP/2
网络错误重试
支持Let’s Encrypt (自动更新HTTPS证书)
高可用集群模式
清爽的界面
Traefik 拥有一个基于AngularJS编写的简单网站界面。![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/5afb056288e4244d69e5131e9215334d.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/f21472a2b7b8b0ca5800f3c855c45b60.png)
以上内容转自:https://traefik.cn
Rancher-Traefik部署
为了保证 Traefik 资源不受其他服务的影响,我们可以通过指定专机专用的方式,让 Traefik 服务独自运行在某一台节点上。PS:专机专用功能,目前只适用于 Rancher 自动调度容器。
一、运行 Rancher Server 并添加 Rancher-Agent 专机专用节点
通过http://rancher-server:8080 地址登录 WEB;
功能定位到 基础设施|主机,并点击添加主机,复制生成的命令来添加一台 Rancher-Agent;
主机成功添加后,页面定位到 基础设施|主机 ,找到需要的主机,在主机视图的右上角,点击三个点的省略号,再点击编辑;
在主机编辑视图中,分别在标签与容器标签需求中添加 traefik_lb=true;
PS:第一个标签:Traefik 服务在启动时会检查主机是否有 traefik_lb=true 标签,只有带有这个标签的主机才能安装Traefik服务。
第二个容器标签需求:这个就是专机专用的功能,通过设置 traefik_lb=true 这个标签,只有带有 traefik_lb=true 标签的服务才能运行到这个节点上。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/b621b363a02340714e1291952e06dec5.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/ac0e994d7e14ddb1d598affe5e2a79eb.png)
二、进入商店(Catalog)搜索并安装Traefik应用
标签设置好之后,进入商店搜索Traefik并安装;
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/5a749c9ba6d5bf51cf16fc5c8a09f86d.png)
点击查看详情进入配置界面,这里我们把 http port 端口改为80 ,其他配置保持默认。最后点击启动;
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/8a584d2d16bae5883b5b5f3a8b96a863.png)
进入 应用|用户 视图,可以看到Traefik应用已正常运行;
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/3a86dddc24493175632e9938fefd1e50.png)
进入 基础架构|主机 视图下,可以看到Traefik运行在指定主机上;
三、运行 demo 应用
新建一个名为 demo 的空应用栈;
在 demo 中添加一个名为 nginx 的服务,把数量设置为4,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/a7d0ea3f6aeda0d444cee194d9b96b57.png)
在标签设置中,添加如下几条标签:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/68c5ec21cc4301b87727fb88de90db2c.png)
traefik.enable = true 可以理解为是否把此服务注册到traefik的一个开关; traefik.domain = test.local 一个适用于所有服务访问的主域名,可以设置多个用逗号隔开;traefik.alias = nginx 服务别名,可以理解为主域名下的二级域名,可以设置多个用逗号隔开;traefik.port = 80 告诉traefik 服务暴露的端口号;
Traefik默认强制开启健康检查,所有只有健康的服务才会被注册到Traefik上。在健康检查中配置健康检查
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/9cf9be07269b512be8f0be5bb577311a.png)
服务正常运行
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/51731f557420b6721bdf07e33ed525b8.png)
四、demo-nginx 服务配置
Traefik有服务管理控制台,默认端口8000。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/56b69b982a35b567dba993444908f739.png)
在控制台中可以看到访问地址:nginx.demo.test.local,nginx.test.local,以前当前后端 健康server 数目
测试访问:nginx.demo.test.local,nginx.test.local
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/c59ee0707bc01beaf9bf60c496db8b05.png)
9月27日,北京海航万豪酒店,容器技术大会Container Day 2017即将举行。
CloudStack之父、海航科技技术总监、华为PaaS部门部长、恒丰银行科技部总经理、阿里云PaaS工程总监、民生保险CIO······均已加入豪华讲师套餐!
11家已容器落地企业,15位真·云计算大咖,13场纯·技术演讲,结合实战场景,聚焦落地经验。免费参会+超高规格,详细议程及注册链接请戳
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/22/c969937ac4c4a80952261ab1c22748ac.png)
相关文章推荐
- 【转】Rancher部署Træfik实现微服务的快速发现
- Rancher部署Træfik实现微服务的快速发现
- Rancher部署Traefik实现微服务的快速发现
- (二)SpringBoot+SpringCloud —— 使用Eureka实现服务注册与发现
- SOA快速指南 1 2 3,第 3 部分: 服务实现及架构设计
- SpringCloud系列:服务注册与发现、负责均衡、hystrix服务降级的实现
- 如何快速自建Git服务,实现异地同步?
- SOA快速指南之服务实现及架构设计
- Eureka+ribbon 实现服务注册与发现和负载均衡
- 使用Spring Cloud Consul实现服务的注册和发现
- 使用consul实现服务的注册和发现
- Spring cloud实现服务注册及发现
- 使用 Eureka 实现服务注册与发现
- 基于Consul+Registrator+Nginx实现容器服务自动发现的集群框架 推荐
- 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法
- 基于zookeeper、连接池实现的Thrift服务负载均衡和服务发现
- Win+R实现快速访问程序及启动服务
- 一个自定义服务以执行脚本实现类属性的快速整齐地排列
- 【Zookeeper】JAVA通过ZK实现服务注册和服务发现
- Ping服务的php实现方法,让网站快速被收录