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

Traefik 是什么?

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

特性

  • 它非常快
  • 无需安装其他依赖,通过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://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 标签的服务才能运行到这个节点上。

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

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

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

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

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

三、运行 demo 应用

  • 新建一个名为 demo 的空应用栈;
  • 在 demo 中添加一个名为 nginx 的服务,把数量设置为4,

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

  • traefik.enable = true  可以理解为是否把此服务注册到traefik的一个开关; traefik.domain = test.local  一个适用于所有服务访问的主域名,可以设置多个用逗号隔开;traefik.alias = nginx  服务别名,可以理解为主域名下的二级域名,可以设置多个用逗号隔开;traefik.port = 80  告诉traefik 服务暴露的端口号;
  • Traefik默认强制开启健康检查,所有只有健康的服务才会被注册到Traefik上。在健康检查中配置健康检查

  • 服务正常运行

四、demo-nginx 服务配置

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

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

原文来源:Rancher Labs

时间: 2024-11-03 14:35:55

Rancher部署Traefik实现微服务的快速发现的相关文章

kubernetes部署spring cloud微服务项目

微服务架构是一项在云中部署应用和服务的新技术.大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点. 微服务可以在"自己的程序"中运行,并通过"轻量级设备与HTTP型API进行沟通".关键在于该服务可以在自己的程序中运行.通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来.在服务公开中,许多服务都可以被内部独立进程所限制.如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围.在微服务架构中

微服务注册与发现

目录 简介 实现服务注册组件 设计服务注册表数据结构 搭建应用程序框架 定义服务注册表接口 使用 ZooKeeper 实现服务注册 服务注册模式 实现服务发现组件 搭建应用程序框架 实现服务发现 服务发现优化方案 服务发现模式 参考 简介 先来回顾下整体的微服务架构 在发布微服务时,可连接 ZooKeeper 来注册微服务,实现"服务注册".当浏览器发送请求后,可使用 Node.js 充当 service gateway,处理浏览器的请求,连接 ZooKeeper,发现服务配置,实现服

微服务-注册与发现-zookeeper bydasn

目录 一.微服务注册的概述 二.zookeeper2.1 zookeeper基本操作2.2 zookeeper集群搭建 一.微服务注册概述 在微服务中,有这么一个东西叫服务注册表,服务注册表是整个微服务的核心,功能有两个,服务注册以及服务发现.   那么这张表有什么要求?   a.服务注册以及服务发现:首先服务启动后,要往表上面写配置信息,注册服务,然后客户端要能发现服务,反向代理去拿这些东西.   b.心跳检测:如果发现某个服务没办法访问量,马上就得移除掉,要求高性能以及高可用. 二.zook

Re:从0开始的微服务架构--(二)快速快速体验微服务架构?--转

原文地址:https://mp.weixin.qq.com/s/QO1QDQWnjHZp8EvGDrxZvw 这是专题的第二篇文章,看看如何搭建一个简单模式的微服务架构. 记得好久之前看到一个大牛说过:如果单体架构都搞不好,就别搞微服务架构.乍一看,这句很有道理,后来发现这句话是不太对的,因为微服务架构的目的就是为了降低系统的复杂性,所以 微服务架构应该比单体架构更简单.更好实践才对. 这篇文章,我们就分享一下如何搭建一个 简单模式 的微服务架构. 什么是微服务架构的简单模式? 相对于大型互联网

在微服务系统开发部署中使用Azure RBAC自定义角色

Azure的官方文档介绍了如何创建用于Azure基于角色的访问控制的自定义角色(RBAC Role). 我们也可以根据同样的原理把RBAC细粒度资源管理运用于微服务产品的开发部署中.(https://www.azure.cn/documentation/articles/role-based-access-control-custom-roles/) 由于快速变化的业务需求,微服务的系统架构设计经常会发生变化,开发团队常常需要增加一个新的微服务,降级一个旧版本的微服务,把一个微服务分隔成2个..

【SFA官方翻译】使用 Kubernetes、Spring Boot 2.0 和 Docker 的微服务快速指南

[SFA官方翻译]使用 Kubernetes.Spring Boot 2.0 和 Docker 的微服务快速指南 原创: Darren Luo SpringForAll社区 今天 原文链接:https://dzone.com/articles/quick-guide-to-microservices-with-kubernetes-sprin 作者:Piotr Mińkowski 译者:Darren Luo 在本教程中你将学习如何使用 Kubernetes 和 Docker 快速启动并运行 Sp

利用Traefik+Docker构建可弹性扩展的微服务或服务集群

简介 Traefik是一个与Nginx.HAProxy有些相似的HTTP反向代理服务器,兼有负载均衡的功能.Nginx和HAProxy都有一个相同的问题就是,后端服务(通常称之为upstream或backend)变化(是否能正常工作.上线.下线.扩展)时,不容易动态更新Nginx和HAProxy的配置文件和重载服务,尽管有一些类似于Registrator, Consul 和Consul-Template 这样的工具可以来做这样的事. 图1:微服务常见的一种请求分发图. 与Nginx.HAProx

(转)详解k8s组件Ingress边缘路由器并落地到微服务 - kubernetes

转:https://www.cnblogs.com/justmine/p/8991379.html 写在前面 Ingress 英文翻译 进入;进入权;进食,更准确的讲就是入口,即外部流量进入k8s集群必经之口.这到大门到底有什么作用?我们如何使用Ingress?k8s又是如何进行服务发现的呢?先看一张图: 备注:此图来源我转载的一篇博客NodePort,LoadBalancer还是Ingress?我该如何选择 - kubernetes,特此说明. 原理 虽然k8s集群内部署的pod.server

用友iuap云运维平台支持基于K8s的微服务架构

什么是微服务架构? 微服务(MicroServices)架构是当前互联网业界的一个技术热点,业内各公司也都纷纷开展微服务化体系建设.微服务架构的本质,是用一些功能比较明确.业务比较精练的服务去解决更大.更实际的问题.该架构强调的一些准则:单一职责.协议轻量.进程隔离.数据分离.独立部署.按需伸缩. 什么是Kubernetes? Kubernetes是Google开源的容器集群管理系统,其提供应用部署.维护. 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能: