13 Istio 流量管理原理与协议扩展 赵化冰
Istio 流量管理原理与协议扩展 赵化冰 赵化冰 腾讯云 服务网格团队 https://zhaohuabing.com Service Mesh Service Mesh Layer 处理服务间通信(主要是七层通信)的云原生基础设施层: Service Mesh 将各个服务中原来使用 SDK 实现的七层通信相关功能抽象 出来,使用一个专用层次来实现,Service Mesh 对应用透明,因此应用 Istio 支持的七层协议非常有限:HTTP 1.1、 HTTP2、 gRPC 其余协议只能在四层进行处理(Thrift、Redis 等其他七层协议的控制面支持非常有限) 11 Istio 协议扩展:控制面和数据面需要进行的改动 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews-route xDS 配置下发 优点: • 控制面改动小,可以快速实现对新协议的支持 问题: • Pilot 目前缺少一个良好的协议扩展机制 • Pilot 需要理解 Envoy filter 中协议特定的知识 • Pilot 代码中维护众多七层协议的代价较大 12 Istio 协议扩展:常见七层协议的路由 Protocol Destination service Parameters could be0 码力 | 20 页 | 11.31 MB | 5 月前3Istio 与 Knative 踩坑实录
(花名:橙子) 酷家乐 技术专家1/25 从3D Mesh 到Service Mesh2/25 /01 /02 /03 实践进展 Istio的价值和问题 Knative的实践和瓶颈3/25 分享主题:字号 实践进展 /01 酷家乐在服务网格和FAAS方向上的实践进展汇总4/25 生产环境Istio稳定运行 酷家乐于2018年8月29日在国际站生产环 境开始全面使用Istio 1.0.1 超大规模应用,几个架构问题有待社区或业界解决17/25 分享主题:字号 Knative 的实践和瓶颈 /03 酷家乐在使用 Knative 作为 Serverless 基础设施时的相关实践和经验18/25 Knative 简介 FAAS 实践进展19/25 酷家乐 FAAS 方案 FAAS 实践进展20/25 Knative 基本实践数据 FAAS 实践进展 分享主题:字号 分享嘉宾 平均冷启动时间0 码力 | 26 页 | 1.35 MB | 5 月前3Istio控制平面组件原理解析
模拟接口延迟响应 ü 使用hey压力工具 ü 相同压力 ü 先用hey进行预热 ü 从10份数据中取中位数解决方案 ü方案一 • 业务性能和日志之间的选择,出现阻塞,丢弃日志保性能 ü方案二 • 使用主题订阅模式,减少阻塞问题Istio_Ca——安全证书管理(ICA) u证书生成 u证书挂载 u证书过期证书生成 ü生成root-cert.pem ü生成cert-chain.pem ü生成key0 码力 | 30 页 | 9.28 MB | 5 月前3Istio 在 Free Wheel 微服务中的实践
在FreeWheel,我们已经有一套复杂的自定义认证、授权机制,为了 充分利用Istio,我们通过扩展Istio来整合这些系统,涉及两方面: • 扩展Sidecar:加入认证支持,提供了对业务系统的认证支持,将用 户相关信息以header的形式传入mesh,后续的授权、监控、限流 都可以用Istio原生的机制来完成 • 扩展Mixer:选择一部分流量来应用对应的授权逻辑 FreeWheel的Istio实践 FreeWheel的Istio实践 • 右图为接入FreeWheel自定义认证和 授权模块的原理图 扩展Sidecar接入认证 • 修改 istio-system/istio-sidecar- injector 这个ConfigMap,加入自定 义反向代理 FreeWheel的Istio实践 • 通过在Sidecar中增加FreeWheel自定义认证支持,下游可以充分利用 Istio提供的授权、限流、监控接口,不过要注意Sidecar也有一些小坑 t,也无法通过容器内环境变量自 动建立master连接,需要管理额外的kubeconfig • Sidecar内的服务流量默认是不被劫持的,如果需要劫持需要添加额 外的annotation 扩展Mixer接入授权 • 右图为Mixer的基本原理,Template 是对Proxy上报的Attribute的特定处 理机制的框架,支持四类: • Preprocess: 汇总流量相关元数据0 码力 | 31 页 | 4.21 MB | 1 年前3Envoy原理介绍及线上问题踩坑
Technologies Co., Ltd. All rights reserved. Page 3 目录 1. Envoy启动及配置文件 2. Envoy流量拦截原理、常用部署方式 3. Envoy可扩展过滤器架构、可观测性 4. Envoy线程模型 5. 生产环境问题分析及解决方法 6. 针对Envoy做的一些优化及效果 7. 常用性能分析测试工具及使用方法 8. 华为ASM产品介绍 Copyright 微服务架构最早由Fred George在2012年的一次技术大会上所提出,他讲到如何通过拆分SOA服务实现服务之间的解耦, 这是微服务最早的雏形。 • 微服务架构通过细粒度的服务解耦拆分,带来缩短开发周期、独立部署、易扩展等好处的同时,同时带来对服务发现、负 载均衡、熔断等能力前所未有的诉求。 • 第一阶段为dubbo、SpringCloud侵入式开发框架,语言强相关。 • 非侵入服务网格最早为2016年Linkerd。 能力,包括服务发现、路由、高级负载均衡、动态配置、链路安全及证书更新、目标健康检查、 完整的可观测性等。 • 目前常见数据面主要有三种:Envoy、Linkerd、Traefic。Envoy由于高性能和扩展能力前在数据面遥 遥领先。 • Iptables使Pod间出入应用的流量均由Envoy代理,对应用来说完全透明。支持主要常用网路协议 Http1/Http2/Tls/gRPC/Tcp等。 Copyright0 码力 | 30 页 | 2.67 MB | 1 年前3全栈服务网格 - Aeraki 助你在 Istio 服务网格中管理任何七层流量
@zhaohuabing @zhaohuabing @zhaohuabing @zhaohuabing #IstioCon Agenda ❏ Service Mesh 中的七层流量管理能力 ❏ 几种扩展 Istio 流量管理能力的方法 ❏ Aeraki - 在 Isito 服务网格中管理所有七层流量 ❏ Demo - Dubbo Traffic Management ❏ MetaProtocol locality load balancing https://docs.qq.com/doc/DVnlqUVB1ek1laFBQ #IstioCon What’s next? 现阶段协议扩展方案面临的挑战: ● 在 Mesh 中支持一个七层协议的工作量较大: ○ 数据面:编写一个 Envoy filter 插件——流量管理(RDS、 负载均衡、熔断、流量镜像、故障注入等)、编解码 ○ 控制面:Aeraki + Istio 提供控制面管理,实现按请求 header 路由、灰度发布、地域感知LB、流量镜像等高级 流量管理能力。 ● 基于 MetaProtocol 框架扩展开发,只需要实现 encode、 decode 的少量接口即可在 Istio 中支持一个新的七层协议 ● 为七层协议如 Dubbo、Thrift 等等添加 RDS 能力 #IstioCon MetaProtocol:控制面0 码力 | 29 页 | 2.11 MB | 1 年前3Extending service mesh capabilities using a streamlined way based on WASM and ORAS
Envoy’s Filter Chain Listener Downstre am Filter Filter Filter Cluster Upstrea m Filter Chain 扩展自定义Filter, 并通过xDS API动态配置 L4 Network Filters L7 Http Filters 3 Listener & Filters before outbound 理中。 ■ 简化了扩展Envoy的过程, 这种解决方案通常使用WebAssembly(WASM)的新技术, 它是一种有效的可移植二进制指令格式,提供了可嵌入和隔离的执行环境。 6 使用Wasm for Proxy ● Pros ○ 敏捷性:过滤器可以动态加载到正在运行的Envoy进程中,而无需停止或重新编译。 ○ 可维护性:不必更改Envoy自身基础代码库即可扩展其功能。 ○ 多样性: io/latest/blog/2020/wasmhub-istio/ ● Wasm filter被推送到ACR EE注册库中 12 阿里云服务网格ASM架构 13 在阿里云服务网格ASM中使用WASM ● 进行统一的代理扩展插件的生命周期管理 14 在ASM中启用wasm部署功能 ● aliyun servicemesh UpdateMeshFeature -- ServiceMeshId=xxxxxx --We0 码力 | 23 页 | 2.67 MB | 1 年前3百度APP基于Istio实现基础架构升级 - lightning talk - MichaelXu
服务发现一一对应。 Ø RPC劫持,构建可快速扩展标准方案。 Ø 自身稳定性,降级(兜底)、隔离、监控多种方式保证。 ①bns, 百度内部基础设施层,服务发现。 ②bns-agent,服务发现接入层。 ㊟ 内核劫持:Loopback方案 Ø loopback地址的管理和分配。 Ø 需要打通业务和loopback之间的映射管 理。 RPC劫持:可扩展方案 Ø envoy启动后注册port到bns-agent。0 码力 | 9 页 | 2.20 MB | 1 年前3Istio + MOSN 在 Dubbo 场景下的探索之路
EnvoyFilter 资源来给 xDS 资源打 patch • Envoy 解析 Dubbo 协议中的 Serivce 和 Method • 根据路由策略配置把流量转发到对应的 Provider • 通过WASM扩展 华为云:https://support.huaweicloud.com/bestpractice-istio/istio_bestpractice_3005.html18/23 改造方案2 MOSN+Dubbo-go0 码力 | 25 页 | 3.71 MB | 5 月前3Kubernetes容器应用基于Istio的灰度发布实践
限流 ACL 故障注入 服务身份和安全 认证 鉴权 平台支持 Kubernetes CloudFoundry Eureka 集成和定制 ACL 日志 配额 Consul 功能 扩展 Istio总体架构 Istio & Kubernetes:架构结合 Kube-APIServer Etcd istioctl / kubectl Pilot Envoy SVC Pod0 码力 | 38 页 | 14.93 MB | 1 年前3
共 10 条
- 1