Rancher部署Traefik实现微服务的快速发现

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:

Traefik 是什么?


Traefik 是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。它支持多种后台 (Rancher、Docker、Swarm、Kubernetes、Marathon、Mesos、Consul、Etcd、Zookeeper、BoltDB、Rest API、file…) 来自动、动态的刷新配置文件,以实现快速地服务发现。


wKiom1mkJtvAlHa6AAJSJIlo4Nc422.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编写的简单网站界面。


wKioL1mkJueSmHJzAADNtoqPSOg695.png

wKiom1mkJvmzRlDKAACk8Mg3g-s604.png

以上内容转自:https://traefik.cn


Rancher-Traefik部署


为了保证 Traefik 资源不受其他服务的影响,我们可以通过指定专机专用的方式,让 Traefik 服务独自运行在某一台节点上。


PS:专机专用功能,目前只适用于 Rancher 自动调度容器。


一、运行 Rancher Server 并添加 Rancher-Agent 专机专用节点


  1. 通过http://rancher-server:8080 地址登录 WEB;

  2. 功能定位到 基础设施|主机,并点击添加主机,复制生成的命令来添加一台 Rancher-Agent;

  3. 主机成功添加后,页面定位到 基础设施|主机 ,找到需要的主机,在主机视图的右上角,点击三个点的省略号,再点击编辑;

  4. 在主机编辑视图中,分别在标签与容器标签需求中添加  traefik_lb=true;


PS:第一个标签:Trfik 服务在启动时会检查主机是否有 traefik_lb=true 标签,只有带有这个标签的主机才能安装Traefik服务。

第二个容器标签需求:这个就是专机专用的功能,通过设置 traefik_lb=true 这个标签,只有带有 traefik_lb=true 标签的服务才能运行到这个节点上。


wKiom1mkJ1eAvotLAAE7SgzlyPk843.png

wKioL1mkJ0XyChx1AAFpmpAKL2Y849.png


二、进入商店(Catalog)搜索并安装Traefik应用


标签设置好之后,进入商店搜索Traefik并安装;


wKioL1mkJ1ax8abyAACfG_54qMM836.png


点击查看详情进入配置界面,这里我们把 http port 端口改为80 ,其他配置保持默认。最后点击启动;


wKiom1mkJ3SiIfpCAADLE31kQhc552.png


进入 应用|用户 视图,可以看到Traefik应用已正常运行;


wKioL1mkJ23Ss_RqAACeZNjPgwg648.png


进入 基础架构|主机 视图下,可以看到Traefik运行在指定主机上;


三、运行 demo 应用


  • 新建一个名为 demo 的空应用栈;

  • 在 demo 中添加一个名为 nginx 的服务,把数量设置为4,


wKiom1mkJ47x-hTBAACqdLgCTGY366.png


  • 在标签设置中,添加如下几条标签:


wKioL1mkJ57gY1SnAABRtwZPPbc626.png


  • traefik.enable = true  可以理解为是否把此服务注册到traefik的一个开关; traefik.domain = test.local  一个适用于所有服务访问的主域名,可以设置多个用逗号隔开;traefik.alias = nginx  服务别名,可以理解为主域名下的二级域名,可以设置多个用逗号隔开;traefik.port = 80  告诉traefik 服务暴露的端口号;

  • Traefik默认强制开启健康检查,所有只有健康的服务才会被注册到Traefik上。在健康检查中配置健康检查


wKiom1mkJ8ix2CxBAACvz_eAunw570.png

  • 服务正常运行


wKiom1mkJ9ryf2kNAACpdTdPAfs449.png


四、demo-nginx 服务配置


  • Traefik有服务管理控制台,默认端口8000。


wKioL1mkJ97CCLFbAADKICbx7G0926.png


  • 在控制台中可以看到访问地址:nginx.demo.test.local,nginx.test.local,以前当前后端 健康server 数目

  • 测试访问:nginx.demo.test.local,nginx.test.local


wKiom1mkJ_zRtPAIAAEo8d3jiMQ724.png原文来源:Rancher Labs


9月27日,北京海航万豪酒店,容器技术大会Container Day 2017即将举行。


CloudStack之父、海航科技技术总监、华为PaaS部门部长、恒丰银行科技部总经理、阿里云PaaS工程总监、民生保险CIO······均已加入豪华讲师套餐!


11家已容器落地企业,15位真·云计算大咖,13场纯·技术演讲,结合实战场景,聚焦落地经验。免费参会+超高规格,详细议程及注册链接请戳

wKioL1nAdIqyFQ_4AAgMYxVaxjM484.png



本文转自 RancherLabs 51CTO博客,原文链接:http://blog.51cto.com/12462495/1960745



相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4月前
|
Kubernetes 安全 Docker
微服务中的部署方法。
# 微服务 # 部署 # 去 # 开发运营
53 0
|
2月前
|
Java Docker 微服务
如何使用Docker和Docker Compose部署微服务
【2月更文挑战第12天】
296 0
|
16天前
|
Linux Nacos 数据库
【微服务】生产部署nacos集群(三个节点)
【微服务】生产部署nacos集群(三个节点)
26 1
|
1月前
|
弹性计算 监控 Cloud Native
云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测
通过MSE(微服务引擎)、SAE(Serverless应用引擎)、ARMS(应用监控服务)、PTS(性能测试服务)等产品,实现微服务的无服务化部署、监控和弹性伸缩。
|
2月前
|
监控 持续交付 Docker
深入浅出:基于Docker的微服务部署实践
【2月更文挑战第26天】在当前软件开发领域,微服务架构与容器化技术成为提升应用可伸缩性、可靠性和开发效率的关键手段。本文将深入探讨如何利用Docker容器技术实现微服务的快速部署与管理,涵盖环境搭建、服务打包、网络配置及持续集成等核心话题。通过实例演示,旨在为开发者提供一套行之有效的微服务部署解决方案。
|
2月前
|
Kubernetes 测试技术 持续交付
探索微服务架构下的持续集成与部署最佳实践
本文将深入探讨在微服务架构下实施持续集成与部署的最佳实践,介绍如何利用现代化工具和流程来实现自动化测试、持续集成、灰度发布等关键环节,帮助开发团队提升交付效率和质量。
|
2月前
|
缓存 应用服务中间件 数据库
微服务多机房部署
【2月更文挑战第13天】微服务一般要部署在多个机房,保证有一个机房因为各种不可抗力因素导致不可用时,可以把流量切换到其他可用机房来避免故障。
|
3月前
|
云计算 开发者 Docker
深入浅出:使用Docker部署微服务架构
在当今快速迭代的软件开发环境中,微服务架构凭借其灵活性和可扩展性成为了热门趋势。本文将探讨如何利用Docker这一强大的容器化技术,简化和加速微服务应用的部署与管理过程。我们将从微服务的基本概念出发,逐步深入到Docker的核心功能,最后通过一个实际案例演示整个部署流程。文章旨在为开发者提供一个清晰、实用的指南,帮助他们有效地利用Docker在微服务架构下的应用部署。
28 0
|
3月前
|
持续交付 开发者 Docker
深入浅出:使用Docker简化微服务部署
在当今快速发展的软件开发领域,微服务架构因其高度的模块化和可伸缩性而受到广泛欢迎。然而,微服务的部署与管理往往是一个挑战,尤其是在多环境下维护一致性时。本文将探讨如何使用Docker容器技术来简化微服务的部署流程,从而实现快速、一致且可复制的部署策略。我们将通过一个示例项目演示如何构建、容器化及部署微服务,并讨论Docker在解决微服务架构中常见问题(如服务隔离、环境一致性和自动化部署)方面的优势。本文旨在为开发人员提供一种更加高效和可靠的微服务部署方法,帮助团队更好地利用Docker的强大功能,优化开发流程。
21 2
|
4月前
|
Dubbo Java 应用服务中间件
微服务框架(七)Docker容器部署(Dubbo、Zookeeper、Dubbo-admin)
此系列文章将会描述Java框架**Spring Boot**、服务治理框架**Dubbo**、应用容器引擎**Docker**,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   **本文为Docker容器部署,包括Dubbo微服务、Zookeeper、Dubbo-admin的部署**
微服务框架(七)Docker容器部署(Dubbo、Zookeeper、Dubbo-admin)