利用Traefik+Docker构建可弹性扩展的微服务或服务集群 推荐
2017-02-09 09:57
821 查看
简介
Traefik是一个与Nginx、HAProxy有些相似的HTTP反向代理服务器,兼有负载均衡的功能。Nginx和HAProxy都有一个相同的问题就是,后端服务(通常称之为upstream或backend)变化(是否能正常工作、上线、下线、扩展)时,不容易动态更新Nginx和HAProxy的配置文件和重载服务,尽管有一些类似于Registrator, Consul 和Consul-Template 这样的工具可以来做这样的事。
图1:微服务常见的一种请求分发图。与Nginx、HAProxy不同的是,Traefik更适合需要服务发现和服务注册的应用场景。例如,Traefik与Docker相结合非常容易,只需要指定label即可(虽然可以使用docker run指定label,但更推荐使用docker-compose.yml指定)。演示的例子直接可以参考官方网站,也可以参考下面的例子,非常简单并通俗易懂。需要指出的是Traefik并不是只能与Docker相结合,Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Amazon ECS, Rest API, file...都可以。具体的可以参考官方网站和Google it。
图2:Traefik是如何管理请求的一个简单的演示:1.创建Traefik服务,可以使用Docker也可以使用命令行的方式。注意:不熟悉docker-compose的可以先学习一下docker-compose的语法和应用,或者直接忽略它,再根据下文的相对目录结构、文件和命令创建。docker-compose.yml 文件内容如下:
2.使用whoami应用作为一个简易的HTTP Web服务:docker-compose.yml 文件内容如下:
3.通过docker-compose logs traefik命令查看Traefik日志:
4.使用docker-compose scale whoami=3 命令扩展3个whoami应用,观察访问情况,通过CURL结果可以发现默认是轮询的wrr。
5.Traefik有一个Dashboard Web UI,可以通过网页了解当前Traefik中的运行情况和节点的健康状态。
更多参考:
官方网站(英文):https://docs.traefik.io/
使用Docker和Traefik构建微服务(英文) http://blog.hypriot.com/post/microservices-bliss-with-docker-and-traefik/
tag:traefik,docker,微服务
--end--
Traefik是一个与Nginx、HAProxy有些相似的HTTP反向代理服务器,兼有负载均衡的功能。Nginx和HAProxy都有一个相同的问题就是,后端服务(通常称之为upstream或backend)变化(是否能正常工作、上线、下线、扩展)时,不容易动态更新Nginx和HAProxy的配置文件和重载服务,尽管有一些类似于Registrator, Consul 和Consul-Template 这样的工具可以来做这样的事。
图1:微服务常见的一种请求分发图。与Nginx、HAProxy不同的是,Traefik更适合需要服务发现和服务注册的应用场景。例如,Traefik与Docker相结合非常容易,只需要指定label即可(虽然可以使用docker run指定label,但更推荐使用docker-compose.yml指定)。演示的例子直接可以参考官方网站,也可以参考下面的例子,非常简单并通俗易懂。需要指出的是Traefik并不是只能与Docker相结合,Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Amazon ECS, Rest API, file...都可以。具体的可以参考官方网站和Google it。
图2:Traefik是如何管理请求的一个简单的演示:1.创建Traefik服务,可以使用Docker也可以使用命令行的方式。注意:不熟悉docker-compose的可以先学习一下docker-compose的语法和应用,或者直接忽略它,再根据下文的相对目录结构、文件和命令创建。docker-compose.yml 文件内容如下:
version: '2' services: traefik: image: traefik:latest restart: unless-stopped command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG networks: - webgateway ports: - "80:80" - "8080:8080" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock - /dev/null:/traefik.toml networks: webgateway: driver: bridge
2.使用whoami应用作为一个简易的HTTP Web服务:docker-compose.yml 文件内容如下:
version: '2' services: whoami: image: emilevauge/whoami networks: - web labels: - "traefik.backend=whoami" - "traefik.frontend.rule=Host:whoami.docker.localhost" networks: web: external: name: traefikself_webgateway
3.通过docker-compose logs traefik命令查看Traefik日志:
4.使用docker-compose scale whoami=3 命令扩展3个whoami应用,观察访问情况,通过CURL结果可以发现默认是轮询的wrr。
5.Traefik有一个Dashboard Web UI,可以通过网页了解当前Traefik中的运行情况和节点的健康状态。
更多参考:
官方网站(英文):https://docs.traefik.io/
使用Docker和Traefik构建微服务(英文) http://blog.hypriot.com/post/microservices-bliss-with-docker-and-traefik/
tag:traefik,docker,微服务
--end--
相关文章推荐
- 利用Swarmkit构建Windows/Linux混合Docker集群 推荐
- 微服务应用-基于Spring Cloud和Docker构建电影推荐微服务
- 构建微服务实验环境(二):Docker Swarm 集群
- 微服务应用-基于Spring Cloud和Docker构建电影推荐微服务
- 微服务应用-基于Spring Cloud和Docker构建电影推荐微服务
- Docker笔记三:基于LVS DR模式构建WEB服务集群
- 使用jenkins、docker、consul、nginx搭建支持自动化构建部署以及弹性伸缩的集群系统详细教程
- 再用五分钟利用docker升级搭建好php7.0.10服务环境(添加扩展mysql、gd、phalcon)
- 使用Docker swarm构建wordpress集群 推荐
- 微服务应用-基于Spring Cloud和Docker构建电影推荐微服务
- Docker笔记三:基于LVS DR模式构建WEB服务集群
- docker实战2 (docker swarm的应用,docker集群的构建,在docker集群中部署服务的创建与更新)
- 利用Spring Cloud和Docker构建微服务以及如何构建起自我修复型分布式系统
- 微服务应用-基于Spring Cloud和Docker构建电影推荐微服务
- 构建企业服务之windows 2008 CA证书服务器部署 推荐
- 话里话外:构建面向流程与客户的服务体系(二) 推荐
- 利用LVS配置负载均衡集群服务(1)
- 构建企业服务之部署Windows Server 2008域控制器 推荐
- 利用自动构建语义本体来实现查询扩展