Istio 在 Free Wheel 微服务中的实践扩展Sidecar:加入认证支持,提供了对业务系统的认证支持,将用 户相关信息以header的形式传入mesh,后续的授权、监控、限流 都可以用Istio原生的机制来完成 • 扩展Mixer:选择一部分流量来应用对应的授权逻辑 FreeWheel的Istio实践 • 右图为接入FreeWheel自定义认证和 授权模块的原理图 扩展Sidecar接入认证 • 修改 istio-system/istio-sidecar- 这个ConfigMap,加入自定 义反向代理 FreeWheel的Istio实践 • 通过在Sidecar中增加FreeWheel自定义认证支持,下游可以充分利用 Istio提供的授权、限流、监控接口,不过要注意Sidecar也有一些小坑 : • Sidecar没有k8s自动注入的secret,也无法通过容器内环境变量自 动建立master连接,需要管理额外的kubeconfig • Si Sidecar,这是一个问题 • Mixer提供了一种非常灵活的模型,让Handler可以在流量中动态的选 择一部分来引入额外的机制(如权限控制、限流等),在应用运维中 这是很重要的能力,只要是不修改请求、响应的功能都可以采用扩展 Mixer来实现 • Sidecar里接入额外的反向代理其实提供了一个修改请求、响应的接口 ,如认证之后需要将用户信息通过header传给下游服务 扩展Mixer接入授权 • 这里实现的例子mymock会完全拒绝所有0 码力 | 31 页 | 4.21 MB | 1 年前3
 Envoy原理介绍及线上问题踩坑GID=1337创建Envoy启动命令行与配置文件 • 可以通过自定义deployment内istio注解sidecar.istio.io/inject: “false”跳过自动注入过程,或修改部分启动参数。 • 2. 控制面通信 • Pilot-agent进程本身创建UDS接收Envoy连接,用于证书更新下发。并且与istiod建立证书更新通道。 • Envoy 通过pilot-age rights reserved. Page 12 Envoy网络及线程模型-共享数据同步 • 1. 调度器通过epoll监控文件事件(网络)及定时器事件进行排队任务处理 • 2. 线程间通信通过post接口发送任务,此任务通过定时器事件激活 • 3. 线程间数据交换通过post更新TLS,这样每个线程内代码都不需要加锁处理 • 4. 每个线程的TLS对象本身只保存真实对象的共享指针进行读操作,减少内存消耗。 沙箱、热升级、 跨语言的扩展机制,处理L4层新连接、数据收发。 envoy.filters.network.dubbo_pro xy L4网络过滤器 解析dubbo RPC协议并提取请求中方法、接口、 metadata等信息,并根据元数据进行路由选择。 envoy.filters.network.local_rateli mit L4网络过滤器 基于L4层网络限流,通过令牌桶防止定期时间间隔内0 码力 | 30 页 | 2.67 MB | 1 年前3
 SolarMesh 基于Istio构建的流量监管平台Copyright © 2021 Cloud To Go 应用场景 - 云上应用故障的可视化排查 传统的故障定位方式 使用solarmesh的故障定位方式 1. 发现页面报错 2. F12看接口 3. 从网关开始,顺着调用链看日志 4. 日志没报错,下一个 5. 循环 4 6. 直到找到故障位置 1. 流量告警 / 发现页面报错 2. 看图 3. 直接找到故障位置 Copyright 管道(HTTP 过滤器)的 Wasm 过滤器。这意味着您可以使用 Wasm 为Sidecar编写逻辑。 Copyright © 2021 Cloud To Go 虚拟机支持 ü 让虚拟机成为集群的一部分 ü 流量视图 ”看到” 虚拟机应用 ü 让虚拟机和集群享受同样的服务治理 ü 让虚拟机和集群具备相互容灾的能力 ü 快速,零成本接入 SolarMesh对虚拟机的支持 Copyright0 码力 | 20 页 | 1.29 MB | 1 年前3
 全栈服务网格 - Aeraki 助你在
Istio 服务网格中管理任何七层流量Listener 内嵌路由 ○ 修改内嵌路由后,Envoy 会重建 listener,导致业务出现短 暂中断。 #IstioCon MetaProtocol:Service Mesh 通用七层协议框架 大部分七层协议的路由、熔断、负载均衡等能力的实现逻辑是类似的, 没有必要每个协议都全部从头实现,重复造轮子。 ● MetaProtocol 框架在 Service Mesh 提供七层协议的通用能力: 提供控制面管理,实现按请求 header 路由、灰度发布、地域感知LB、流量镜像等高级 流量管理能力。 ● 基于 MetaProtocol 框架扩展开发,只需要实现 encode、 decode 的少量接口即可在 Istio 中支持一个新的七层协议 ● 为七层协议如 Dubbo、Thrift 等等添加 RDS 能力 #IstioCon MetaProtocol:控制面 通过 Aeraki MetaProtocol0 码力 | 29 页 | 2.11 MB | 1 年前3
 Kubernetes容器应用基于Istio的灰度发布实践List/Watc h 1. Controller实现ServcieDiscovery 若干服务发现的接口定义 2. Controller List/Watch KubeAPIserver上service、 endpoint等资源对象 3. DiscvoeryServer使用 ServcieDiscovery接口上的服务发 现方法和用户配置的规则构造xDS 4. Envoy从Discovery获取xDS,动态0 码力 | 38 页 | 14.93 MB | 1 年前3
 Kubernetes容器应用基于Istio的灰度发布实践List/Watc h 1. Controller实现ServcieDiscovery 若干服务发现的接口定义 2. Controller List/Watch KubeAPIserver上service、 endpoint等资源对象 3. DiscvoeryServer使用 ServcieDiscovery接口上的服务发 现方法和用户配置的规则构造xDS 4. Envoy从Discovery获取xDS,动态0 码力 | 34 页 | 2.64 MB | 6 月前3
 Istio 与 Knative 踩坑实录实践进展20/25 Knative 基本实践数据 FAAS 实践进展 分享主题:字号 分享嘉宾 平均冷启动时间 不包含 Istio-proxy 业务为 go 语言或 nodejs 语言的简单接口 3.6 秒 额外内存占用 30~60 MB 为 queue-proxy 占用21/25 踩过的坑/问题 FAAS 实践进展 • 镜像源问题 • RevisionUnkown 状态(00 码力 | 26 页 | 1.35 MB | 6 月前3
 Istio控制平面组件原理解析协程池堵塞是否会影响envoy性能?Mixer协程池 ü 初始化一定量worker(协程) ü 监听同一队列 ü 任务放入队列 ü Worker处理任务Jaeger架构设计Mixer阻塞对envoy的影响 压测环境: ü 模拟接口延迟响应 ü 使用hey压力工具 ü 相同压力 ü 先用hey进行预热 ü 从10份数据中取中位数解决方案 ü方案一 • 业务性能和日志之间的选择,出现阻塞,丢弃日志保性能 ü方案二 • 使0 码力 | 30 页 | 9.28 MB | 6 月前3
 Istio + MOSN 在 Dubbo 场景下的探索之路xDS资源 • 构建 xDS 资源,下发到连接的 Sidecar10/23 xDS Sidecar 通过动态获取服务信息,对服务的发现 API 被称为 xDS。 • 协议部分(ADS、控制发送的顺序以及返回的确认数据) • 数据部分(CDS、EDS、LDS、RDS、SDS)11/23 资源变化 资源名称 CDS EDS LDS RDS Virtualservices ✔ Gateways0 码力 | 25 页 | 3.71 MB | 6 月前3
 百度APP基于Istio实现基础架构升级 - lightning talk - MichaelXu理能力提出了更高的要求。 l 高级架构能力能否多语言、多框架支持? l 运维架构能力是否具备可移植性?是否能低成本复制新的产品线? l 可观测性不足,是否有通用机制提升产品线可观测性? Ø 部分模块上下游超时配置不合理,超时倒挂,集中管理调整成本比较高。 Ø 多数模块对单点异常,慢节点等异常缺乏容忍能力,推动每个模块独立修复,成本高,上线周期长。 Ø 因重试导致雪崩,底层RPC框架需要重复建设来定制动态熔断能力。0 码力 | 9 页 | 2.20 MB | 1 年前3
共 10 条
- 1
 













