进击的 Traefik | 云原生边缘路由器探秘
进击的 Traefik 杨川胡(阳明) 知群后台负责人 2019.10.26 Service Mesh Meetup #7 成都站 云原生边缘路由器探秘杨川胡(阳明) 知群后台负责人,原小米视频后台高级研发 ,《Prometheus 深入浅出》作者,「k8s技 术圈」社区作者,现阶段专注于云原生技术 领域,希望成为一个有产品思维的工程师1 Traefik 介绍 2 Traefik Traefik 2.0 核心概念 3 Traefik With Docker 4 Traefik With KubernetesTraefik 是什么? • 云原生的边缘路由器 • 让部署微服务更加便捷而诞生的现 代 HTTP 反向代理、负载均衡工具 • 它支持多种后台 (Docker, Swarm, Kubernetes, M arathon, Mesos, Consul, Etcd, Z ookeeper ....1 Traefik 介绍 2 Traefik 2.0 核心概念 3 Traefik With Docker 4 Traefik With KubernetesTraefik 是一个边缘路由器Traefik 自动服务发现Traefik 2.0 架构 • Providers 用来自动发现平台上的服务 • Entrypoints 监听传入的流量(端口等… ) • Routers 分析请求(host0 码力 | 35 页 | 8.58 MB | 5 月前3Service Mesh结合容器云平台的思考和实践
• 认证和授权 • 智能路由 • 流量管理 • 服务降级 • … • 微服务拆分原则 • 业务API设计 • 数据一致性保证 • 可扩展性考虑 • …Kubernetes对于微服务的支撑 功能列表 详情 快速资源分配 容器编排和调度 服务部署&弹性伸缩 Deployment 服务注册&服务发现 Service概念和分布式DNS API网关 简单路由功能 统一日志中心 Fluentd Mesh云平台微服务演进之Service Mesh Pilot Envoy • 服务发现 • Envoy生命周期管理 • Envoy配置下发 • 服务模型 • 配置模型 • 负载均衡 • 智能路由(灰度、蓝绿) • 流量管理(超时、重试、熔断) • 故障处理 • 故障注入 • … Mixer • 前提条件检查:安全认证,黑白名单, ACL检查 • 限流管理 • 遥测报告:日志监控 件,内部提供了多个模块化的适配器(adapter)。 • Pilot 翻译过来是领航员,Pliot对Envoy的生命周期进行管理,同时提供了智能路由(如A/B测试、金丝雀部 署)、流量管理(超时、重试、熔断)功能。Pliot接收用户指定的高级路由规则配置,转换成Envoy的 配置,使这些规则生效。 • Istio-Auth 服务间认证和终端用户认证功能Istio的Pilot功能解析Pilot官方架构Istio0 码力 | 28 页 | 3.09 MB | 5 月前313 Istio 流量管理原理与协议扩展 赵化冰
SDK 实现的七层通信相关功能抽象 出来,使用一个专用层次来实现,Service Mesh 对应用透明,因此应用 可以无需关注分布式架构带来的通信相关问题,而专注于其业务价值。 流量控制:服务发现、请求路由、负载均衡、灰度发布、错误重试、 断路器、故障注入 可观察性:遥测数据、调用跟踪、服务拓扑 通信安全: 服务身份认证、访问鉴权、通信加密 Proxy Application Layer Service q 服务数据(Mesh 中有哪些服务?缺省路由) v Service Registry § Kubernetes:原生支持 § Consul、Eureka 等其他服务注册表:MCP over xDS (https://github.com/istio-ecosystem/consul-mcp) v 通过CRD定义的服务数据 q 自定义流量规则(如何将请求路由到这些服务?) v 通过CRD定义的流量规则 Destination Rule 外部请求 内部客户端 Service2 Service1 网格内部 定义网格入口 • 服务端口 • Host • TLS 配置 • 路由配置 • 根据 Host 路由 • 根据 Header • 根据 URI 路由 目的地流量策略配置 • LB 策略 • 连接池配置 • 断路器配置 • TLS 配置 Gateway External Service 统一网格出口 •0 码力 | 20 页 | 11.31 MB | 5 月前3SOFAMOSN持续演进路径及实践分享
简单匹配路由 Ø 集群管理 & 基本负载均衡(RR、 RANDOM) Ø SofaRpc及HTTP/1.1、 HTTP/2.0支持 Ø 进程平滑升级 Ø SOFAMesh集成,支持 xDS on ADS Ø X-Protocol协议扩展机制, 以及Dubbo支持 Ø 支持network/stream filter 扩展 Ø 支持WRR负载均衡 Ø 支持subset复杂匹配路由 Ø 无损平滑迁移 无损平滑迁移 Ø ProtocolEngine协议扩展 机制 Ø 支持Router模式 Ø GRPC支持 Ø 协议自动识别 Ø 链式路由扩展 Ø 完善流量管理策略,包括 Retry、DirectResponse、 HTTP Header add/delete、 流控、故障注入等 Ø 支持必要的admin接口性能 0.1.0 0.2.0 0.3.0 0.4.0 Ø 内存复用框架 Ø 云原生场景下的多协议、路由&LB、后端管理、TLS、遥感监测、XDS对接等功能, 并充分优化了性能,目前已经在蚂蚁、UC生产环境进行了验证。落地实践案例蚂蚁落地 – 应用接入 ü 适用于蚂蚁当前的服务发现 体系 ü 通过中间件通道对应用推送 MOSN调用地址 ü 通过扩展cluster类型的方式 动态获取配置中心后端 ü MOSN出向路由基于明确的 服务依赖关系生成 ü 服务通过 id:version0 码力 | 29 页 | 7.03 MB | 5 月前3Service Mesh的实践分享
基本服务治理功能 App OSP Server Service Registry Service Config Center 服务发现 服务注册 服务元数据下发 OSP client 服务路由 网络传输 服务元数据上报缺点 • 语言单一 • 升级困难 • 复杂代码嵌入对客户端进程影响大服务化体系2.0 - Service Mesh雏形 • 物理机、sidecar • Local & Service Registry Service Config Center Remote Proxy Cluster API Gateway 备用链路 服务发现 服务注册 配置下发 服务路由 网络传输 OSP client多语言客户端接入 • HTTP & TCP • Local & Remote • 根据接入对象的不同,制定 不同的接入策略,达到 • 接入简单 • 保证性能 Service Registry Service Config Center Remote Proxy Cluster API Gateway 备用链路 服务发现 服务注册 配置下发 服务路由 网络传输 OSP client PhpApp Local Proxy OSP client Pod Local Proxy OSP client Pod OSP client Web0 码力 | 30 页 | 4.80 MB | 5 月前3蚂蚁金服Service Mesh渐进式迁移方案
b-ip, b-port=getOriginalDest() 都没有改造,直连 服务器端有改造,单跳 客户端有改造,单跳Service Mesh时代的客户端和寻址方式 服务发现 加密 负载均衡 请求路由 目标服务 的标识 序列化 链路追踪 故障注入 日志 监控 Metrics 熔断 限流 服务降级 前置条件检查 身份认证 密钥管理 访问控制 …… 下沉到 Service Mesh 轻量级客户端 ServiceName=userservice • ClusterIP=10.254.162.44 • Domain=userservice.default.svc.cluster.local 2. 生成DNS记录 • userservice.default.svc.cluster.local -> 10.254.162.44 kube-proxy 3. 发送请求 GET http://userservice/id/1000221 ServiceName=userservice • ClusterIP=10.254.162.44 • Domain=userservice.default.svc.cluster.local 2. 生成DNS记录 • userservice.default.svc.cluster.local -> 10.254.162.44 3. 发送请求 GET http://userservice/id/10002210 码力 | 40 页 | 11.13 MB | 5 月前323-云原生观察性、自动化交付和 IaC 等之道-高磊
新PaaS组织方式。 • 逻辑API:已有API的组 合,形成一个新API • 声明API:需要生成代 码框架(任何语言), 契约驱动研发 • BaaS API:数据库接口、 中间件接口外化成API • API门户:消费者可以 根据领域-能力查询到 想要的API。 • 自动生成SDK方便集成。 • 发行计划:向下兼容, 对比发布 • API文档:每一个API有 一个活档,指导集成。 及在数分钟内实现特定场景下基础设施就绪是很难实现的。因此需要一种全新的 管理方法,而IaC借助了软件开发中的代码管理经验,通过代码描述基础设施的配 置及变更,再执行代码完成配置和变更。 K8S OS DB F5 路由器 防火墙 .... Ansible Salt Chef Pupet 实际上云原生平台自己也采用了IaC来管理应用, 比如K8S的Yaml,这种方式有利于隔离实现细节。 ITIL 需要具体学习不同软0 码力 | 24 页 | 5.96 MB | 5 月前3TiDB中文技术文档
Ansible 部署方案(强烈推荐) 离线 Ansible 部署方案 Docker 部署方案 Docker Compose 部署方案 跨机房部署方案 配置集群 参数解释 TiDB 配置项解释 开启 TLS 验证 生成自签名证书 监控集群 整体监控框架概述 重要监控指标详解 组件状态 API & 监控 扩容缩容 集群扩容缩容方案 使用 Ansible 扩容缩容 升级 升级组件版本 TiDB 2.0 升级操作指南 性能调优 书栈(BookStack.CN) 构建 致谢 当前文档 《TiDB 中文技术文档》 由 进击的皇虫 使用 书栈(BookStack.CN) 进行构建,生成于 2018- 06-25。 书栈(BookStack.CN) 仅提供文档编写、整理、归类等功能,以及对文档内容的生成和导出工具。 文档内容由网友们编写和整理,书栈(BookStack.CN) 难以确认文档内容知识点是否错漏。如果您在阅读文档 获取知识的时候 识准确、高效且有效地传递 给每一个人。 同时,如果您在日常工作、生活和学习中遇到有价值有营养的知识文档,欢迎分享到 书栈(BookStack.CN) , 为知识的传承献上您的一份力量! 如果当前文档生成时间太久,请到 书栈(BookStack.CN) 获取最新的文档,以跟上知识更新换代的步伐。 文档地址:http://www.bookstack.cn/books/pingcap-docs-cn 书栈官网:http://www0 码力 | 444 页 | 4.89 MB | 5 月前3蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
Ø定义可扩展的插件机制 Ø对于满足请求Stream池化的需求 Ø需处理上层传入的状态事件PROXY 7 Ø基于Stream抽象提供多协议转发能力 Ø执行Stream扩展Filters Ø提供可扩展的路由寻址能力 Ø提供可扩展的后端管理,负载均衡,健康检查能力 Ø维护上/下游核心指标转发流程 8 IO Read Codec Stream Route / LB Codec Stream IO Log Writer Pool send encode Q u e u e C模块划分 11要点总结 12 Ø模块化,分层解耦 Ø统一的编程模型接口 Ø可扩展的事件驱动模型 Ø可扩展的路由/后端管理机制 Ø更好的吞吐量3 能力核心能力 1 网络处理 •网络编程接口 •链接管理 •事件机制 •Metrics 收集 •TCP 代理 •TLS 支持 •TProxy 支持 •SOFA RPC •HTTP 1.x (待优化) •HTTP 2 (待优化) •Dubbo (研发中) •HSF (研发中) •On TLS 核心路由 •支持 virtual host 路由 •支持 headers/url/prefix 路由 •支持基于 host metadata 的 subset 路 由 •支持重试 后端管理 •基础负载均衡算法 •主动健康检查 •Subset0 码力 | 44 页 | 4.51 MB | 5 月前3Service Mesh Meetup #3 深圳站
- golang.mdDrone 和 Jenkins 联调测试方法 本地即可测试 drone 上是否可以调用成功: >docker run --rm \ -e JENKINS_URL=URL> -e JENKINS_USER= -e JENKINS_TOKEN= -e JENKINS_JOB= 路由到单个后端实例。当部署第二个客户端时,它可能被路由到另 一个后端实例。这不是所需的那种负载均衡,因为它不允许独立地 扩展客户端和服务器。当客户端实例比服务器实例少时,一些服务 器实例将处于空闲状态,所以 Kubernetes 流量的自动负载均衡。 • 通过丰富的路由规则、重试、故障转移和故障注入,可以对流量行 为进行细粒度控制。 • 可插入的策略层和配置 API,支持访问控制、速率限制和配额。 • 对出入集群入口和出口中所有流量的自动度量指标、日志记录和跟 踪。 • 通过强大的基于身份的验证和授权,在集群中实现安全的服务间通 信。坑 • Gitlab • external_url • Outbound requests(Allow 0 码力 | 45 页 | 18.62 MB | 5 月前3
共 100 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10