traefik: 基础入门总结
traefik介绍
traefik-现代反向代理,也可称为现代边缘路由;traefik原声兼容主流集群,Kubernetes,Docker,AWS等。官方的定位traefik是一个让开发人员将时间花费在系统研发与部署功能上,而非配置和维护。并且traefik官方也提供自己的服务网格解决方案
作为一个 modern edge router ,traefik拥有与envoy相似的特性
- 基于go语言研发,目的是为了简化开发人员的配置和维护
- tcp/udp支持
- http L7支持
- GRPC支持
- 服务发现和动态配置
- front/ edge prory支持
- 可观测性
- 流量管理
- ...
traefik 术语
要了解trafik,首先需要先了解一下 有关trafik中的一些术语。
- EntryPoints 入口点,是可以被下游客户端连接的命名网络位置,类似于envoy 的listener和nginx的listen
- services 服务,负载均衡,上游主机接收来自traefik的连接和请求并返回响应。 类似于nginx upstream envoy的clusters
- Providers 提供者,提供配置文件的后端,如文件,consul,redis,etcd等,可使traefik自动更新
- routers 路由器,分析请求,将下游主机的请求处理转入到services
- middlewares: 中间件,在将下游主机的请求转入到services时进行的流量调整
traefik部署安装
traefik为go语言开发的,可以直接下载运行即可。此处介绍直接运行二进制程序
后端环境准备,此处为docker运行的两个后端。
version: '3'
services:
webserver1:
image: sealloong/envoy-end:latest
ports:
- 91:90
networks:
envoymesh:
aliases:
- v1_server
- default_server
environment:
- VERSION=v1
- COLORFUL=blue
expose:
- 90
webserver2:
image: sealloong/envoy-end:latest
ports:
- 92:90
networks:
envoymesh:
aliases:
- v1_server
- default_server
environment:
- VERSION=v1
- COLORFUL=blue
expose:
- 90
networks:
envoymesh: {}
traefik配置说明
Traefik中的配置可以引用两种不同的内容:
- 完全动态路由配置(动态配置)
- 启动时配置(静态配置)
静态配置一般定义traefik的endpoints 与providers,这些不经常变动
动态配置一般定义traefik的处理浏览的部分,如 中间件,路由,浏览管理等。
- traefik1 与 traefik2的配置文件不兼容
此处配置主要以file方式讲解。
静态配置部分:
entryPoints:
web:
address: :8081
[api]
dashboard = true
insecure = true
providers:
file:
filename: ./root.yaml
[accessLog]
filePath = "/root/access.log"
format = "json"
动态配置部分
http:
routers:
router0:
rule: "Host(`test.com`)"
service: "service-foo"
entryPoints:
- web
router1:
rule: "Path(`/`)"
service: "baidu"
entryPoints:
- web
services:
service-foo:
loadBalancer:
servers:
- url: "http://10.0.0.4:91/"
- url: "http://10.0.0.4:92/"
baidu:
loadBalancer:
servers:
- url: http://www.baidu.com/


traefik: 基础入门总结的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- 「译」JUnit 5 系列:基础入门
原文地址:http://blog.codefx.org/libraries/junit-5-basics/ 原文日期:25, Feb, 2016 译文首发:Linesh 的博客:JUnit 5 系列: ...
- .NET正则表达式基础入门
这是我第一次写的博客,个人觉得十分不容易.以前看别人写的博客文字十分流畅,到自己来写却发现十分困难,还是感谢那些为技术而奉献自己力量的人吧. 本教程编写之前,博主阅读了<正则指引>这本入门 ...
- 从零3D基础入门XNA 4.0(2)——模型和BasicEffect
[题外话] 上一篇文章介绍了3D开发基础与XNA开发程序的整体结构,以及使用Model类的Draw方法将模型绘制到屏幕上.本文接着上一篇文章继续,介绍XNA中模型的结构.BasicEffect的使用以 ...
- 从零3D基础入门XNA 4.0(1)——3D开发基础
[题外话] 最近要做一个3D动画演示的程序,由于比较熟悉C#语言,再加上XNA对模型的支持比较好,故选择了XNA平台.不过从网上找到很多XNA的入门文章,发现大都需要一些3D基础,而我之前并没有接触过 ...
- Shell编程菜鸟基础入门笔记
Shell编程基础入门 1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail: ...
- [Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.
前言: 在上一篇中: [Spring框架]Spring AOP基础入门总结一. 中 我们已经知道了一个Spring AOP程序是如何开发的, 在这里呢我们将基于AspectJ来进行AOP 的总结和学习 ...
- [Spring框架]Spring AOP基础入门总结一.
前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect ...
- RobotFramework - 基础入门
Robot Framework Wiki HomePage Robot Framework User Guide Robot Framework documentation Robot Framewo ...
- .NET ORM 的 “SOD蜜”--零基础入门篇
PDF.NET SOD框架不仅仅是一个ORM,但是它的ORM功能是独具特色的,我在博客中已经多次介绍,但都是原理性的,可能不少初学的朋友还是觉得复杂,其实,SOD的ORM是很简单的.下面我们就采用流行 ...
随机推荐
- python函数之有参装饰器
一.为什么要有有参装饰器? 来看之前的无参装饰器 # 无参装饰器 def outter(func): def wrapper(*args,**kwargs): start = time.time() ...
- 第30 章 : 理解 RuntimeClass 与使用多容器运行时
理解 RuntimeClass 与使用多容器运行时 本文将主要分享以下三方面的内容: RuntimeClass 需求来源 RuntimeClass 功能介绍 多容器运行时示例 RuntimeClass ...
- Spring Cloud Alibaba(1)---入门篇
Spring Cloud Alibaba入门篇 有关微服务的一些概念的东西我这里就不再阐述了,因为之前在写Spring Cloud系列的时候都有详细写过. 具体地址: Spring Cloud系列博客 ...
- GAMES101作业2
作业任务: 填写并调用函数 rasterize_triangle(const Triangle& t). 即实现光栅化 该函数的内部工作流程如下: 创建三角形的 2 维 bounding bo ...
- Spring(七篇)
(一)Spring 概述 (二)Spring Bean入门介绍 (三)Spring Bean继续入门 (四)Spring Bean注入方试 (五)Spring AOP简述 (六)Spring AOP切 ...
- 消息中间件-ActiveMQ支持的消息协议
package com.study.mq.a1_example.helloworld.queue; import org.apache.activemq.ActiveMQConnectionFacto ...
- Leedcode算法专题训练(排序)
排序 快速排序 用于求解 Kth Element 问题,也就是第 K 个元素的问题. 可以使用快速排序的 partition() 进行实现.需要先打乱数组,否则最坏情况下时间复杂度为 O(N2). 堆 ...
- 数据结构☞二叉搜索树BST
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它可以是一棵空树,也可以是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值: 若它 ...
- php读取目录下的所有文件
php读取目录下的所有文件 $path = './use'; $result = scanFile($path); function scanFile($path) { global $result; ...
- PAT 乙级 -- 1005 -- 继续(3n+1)猜想
题目简述 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如 ...