Istio控制平面组件原理解析Istio控制平面组件原理解析 朱经惠 2018.08.25 Service Mesh Meetup #3 深圳站关于我 • 朱经惠,ETC车宝平台工程师。 • 喜欢开源,个人开源项目”Jaeger PHP Client”。 • 喜欢研究源码,对NSQ,Jaeger,Istio(控制平面)等go语言开源项目进行 过研究。 • 除了代码还喜欢爬山和第二天睡醒后全身酸疼的感觉。目录Pil 启动另外一个S进程(Secondary process) • 2. S通知P(Primary process)关闭其管理的端口,由S接管 • 3. S加载配置,开始绑定listen sockets,在这期间使用UDS从P获取合适的listen sockets • 4. S初始化成功,通知P停止监听新的链接并优雅关闭未完成的工作 • 5. 在P优雅关闭过程中,S会从共享内存中获取stats • 5. 到了时间S通知P自行关闭 Envoy优雅关闭实现方式讨论:#3307 #2920Pilot-Discovery——配置中心(PD) uv1版本和v2版本之间的区别 u建立缓存配置 u触发配置生效方式v1版本和v2版本之间的区别 V1 HTTP1 REST JSON/YAML 弱类型 轮询 SDS/CDS/RDS/LDS 奠定控制平面基础 V2 HTTP2 GRPC Proto3 强类型 Push SDS/CDS/RDS/LDS/HDS/ADS/KDS0 码力 | 30 页 | 9.28 MB | 6 月前3
 SolarMesh 基于Istio构建的流量监管平台让企业都能高效创新 SolarMesh 基于Istio构建的流量监管平台 Copyright © 2021 Cloud To Go Copyright © 2021 Cloud To Go 目录 1. 为什么我们需要服务网格 2. SolarMesh的定位 3. SolarMesh的特点 4. SolarMesh 对Istio社区的产品化改进 5. SolarMesh的架构 6. SolarMesh Copyright © 2021 Cloud To Go 为什么我们需要服务网格 - 微服务化带来的问题 错综复杂的服务调度掩盖了 问题的源头 服务间交互的复杂性: Ø 难以可视化 Ø 难以全面测试 Ø 多服务联动时问题难以察觉 Ø ... 服务间通信的复杂性: Ø 网络延迟 Ø 消息序列化 Ø 不可靠的网络 Ø 异步机制 Ø ... 开发难 排错难 测试难 运维难 Ø 服务变得非常多 Ø 学的东西更多 Copyright © 2021 Cloud To Go 为什么我们需要服务网格 - 业务上k8s带来的问题 Ø 集群内的情况不可见 Ø 环境不统一,很难复现问题 Ø 集群中的网络限制 Ø ... Ø 学习k8s成高 Ø 测试方法发生了改变 Ø 有些问题只能在集群内出 现,难以测试 Ø ... 测试难 运维难 Ø 学习k8s成高 Ø 缺少好用的工具 Ø0 码力 | 20 页 | 1.29 MB | 1 年前3
 Kubernetes容器应用基于Istio的灰度发布实践Kubernetes容器应用基于Istio的灰度发布实践 张超盟 @ Huawei Cloud BU 2018.08.25 Service Mesh Meetup #3 深圳站 Agenda • Istio & Kubernetes • Istio & Kubernetes上的灰度发布 An open platform to connect, manage, and secure microservices 微服务角度看Istio: 治理形态的演变 Node 1 svc1 自身业务 SDK Sidecar 服务治理 Node 2 svc 2 自身业务 SDK Sidecar 服务治理 通信基础 服务发现 负载均衡 熔断容错 动态路由 … for (封装++) { 应用侵入--; 治理位置--; } 微服务角度看Istio: 服务网格 服务网格控制面 从基础设施(Kubernetes)看Istio: 从基础设施(Kubernetes)看Istio: 服务访问 Node svca svcc svcb.ns svcc.ns svcb svcd svce svce.ns svcd.ns svcd.ns Kube-proxy Kube-APIServer ServiceIp Backend Pod1 Labels:app=svcb Port:9379 Backend Pod2 Labels:app=svcb0 码力 | 38 页 | 14.93 MB | 1 年前3
 Kubernetes容器应用基于Istio的灰度发布实践1 Kubernetes容器应用基于Istio的灰度发布实践 张超盟 @ Huawei Cloud BU 2018.08.25 Service Mesh Meetup #3 深圳站2 Agenda • Istio & Kubernetes • Istio & Kubernetes上的灰度发布3 An open platform to connect, manage, and secure 微服务角度看Istio: 治理形态的演变 Node 1 svc1 自身业务 SDK Sidecar 服务治理 Node 2 svc 2 自身业务 SDK Sidecar 服务治理 通信基础 服务发现 负载均衡 熔断容错 动态路由 … for (封装++) { 应用侵入--; 治理位置--; }6 微服务角度看Istio: 服务网格 服务网格控制面7 从基础设施(Kubernetes)看Istio: 从基础设施(Kubernetes)看Istio: 服务访问 Node svca svcc svcb.n s svcc.ns svcb svcd svce svce.n s svcd.n s svcd.n s Kube-proxy Kube-APIServer ServiceIp Backend Pod1 Labels:app=svcb Port:9379 Backend Pod2 Labels:app=svcb0 码力 | 34 页 | 2.64 MB | 6 月前3
 探讨和实践基于Istio的微服务治理事件监控Meetup #4 上海站 探讨和实践基于Istio的微服务治理事件监控 2018.11.25 徐运元关于我 2008年毕业于浙江大学,曾在思科和浙大网新有超过 9年的工作经验和5年的云计算领域工作经验,带领团 队完成公司第一代基于Kubernetes的云平台开发和第 二代基于Kubernetes的DevOps云平台开发。目前致力 于公司基于Istio的微服务平台打造。 来自于浙江大学SEL实验室目录 微服务平台的监控演进 Mixer组件的功能介绍 基于Mixer的开发流程和实例微服务平台的监控演进典型的运维场景 传统的监控面临容器化和微服务化的困境 测试运维沟通鸿沟,如何提升沟通效率 监控工具繁杂,如何快速找到合适工具进行问题定位 偶发性问题场景复杂,如何保留发生现场 如何在错综复杂的未服用调用链路中找到错误源头监控场景转换 帮助运维人员快速的定位问题,解决问题 基于容器化和微服务化的监 基于容器化和微服务化的监 控场景 • 应用规模巨大 • 服务之间依赖呈现为网状 • 除了日志、性能指标,需要 基于请求的依赖追踪监控 基于虚拟化的监控场景 • 应用规模大 • 服务之间依赖呈现为线型 • 日志、性能指标需要集中化 存储 基于主机的监控场景 • 应用规模较小 • 服务之间没有互相依赖 • 日志、性能指标都在单个主 机问题一:什么是用户想要的监控 什么是用户想要的监控?分布式监控的三个维度0 码力 | 29 页 | 8.37 MB | 6 月前3
 百度APP基于Istio实现基础架构升级 - lightning talk - MichaelXu#IstioCon 百度APP基于Istio实现 基础架构升级 许超 #IstioCon 背景 l 核心业务线已完成微服务改造,数万个微服务对架构服务治理能力提出了更高的要求。 l 高级架构能力能否多语言、多框架支持? l 运维架构能力是否具备可移植性?是否能低成本复制新的产品线? l 可观测性不足,是否有通用机制提升产品线可观测性? Ø 部分模块上下游超时配置不合理,超时倒挂,集中管理调整成本比较高。 服务治理策略平台化 联合公司内部,通过合作共建方式实现完整的Service Mesh架构,提升架构策略灵活性,缩 减服务治理迭代周期,降低服务治理研发成本。 l 服务治理能力通用化 基于Service Mesh架构共建高级架构能力,为不同模块、不同产品线、甚至整个公司内提供 各项服务治理能力的通用化、中台化能力,从而加速服务治理技术的研发和迭代,提升架构 能力可移植性。 #IstioCon 技术方案 l 核心原则 Ø 务实、高稳定性、低迁移成本。 l 核心思路 Ø 先单跳,后双跳。 Ø 服务发现下沉到Envoy。 Ø 基于 RPC + 服务发现实现透明流量劫持。 Ø 自建配置中心,产品化封装。 l 关键技术 Ø 内核劫持,使用Loopback IP 与 服务发现一一对应。 Ø RPC劫持,构建可快速扩展标准方案。 Ø 自身稳定性,降级(兜底)、隔离、监控多种方式保证。0 码力 | 9 页 | 2.20 MB | 1 年前3
 Envoy原理介绍及线上问题踩坑针对Envoy做的一些优化及效果 7. 常用性能分析测试工具及使用方法 8. 华为ASM产品介绍 Copyright © Huawei Technologies Co., Ltd. All rights reserved. Page 4 前言 • 微服务架构最早由Fred George在2012年的一次技术大会上所提出,他讲到如何通过拆分SOA服务实现服务之间的解耦, 这是微服务最早的雏形。 • 微服务架构通过细粒度的服务解耦拆分,带来缩短开发周期、独立部署、易扩展等好处的同时,同时带来对服务发现、负 载均衡、熔断等能力前所未有的诉求。 • 第一阶段为dubbo、SpringCloud侵入式开发框架,语言强相关。 • 非侵入服务网格最早为2016年Linkerd。 • 2017年,Goole、IBM、Lyft发布Istio。Istio目前为服务网格的事实标准,并且是2019年Github增长最快的TOP Github增长最快的TOP 10开源 项目之一。目前最新为1.10版本。 Copyright © Huawei Technologies Co., Ltd. All rights reserved. Page 5 Envoy介绍 • Envoy采用C++实现,本身为四层及七层代理,可以根据用户应用请求内的数据进行高级服务治理 能力,包括服务发现、路由、高级负载均衡、动态配置、链路安全及证书更新、目标健康检查、0 码力 | 30 页 | 2.67 MB | 1 年前3
 13 Istio 流量管理原理与协议扩展 赵化冰Mesh Service Mesh Layer 处理服务间通信(主要是七层通信)的云原生基础设施层: Service Mesh 将各个服务中原来使用 SDK 实现的七层通信相关功能抽象 出来,使用一个专用层次来实现,Service Mesh 对应用透明,因此应用 可以无需关注分布式架构带来的通信相关问题,而专注于其业务价值。 流量控制:服务发现、请求路由、负载均衡、灰度发布、错误重试、 断路器、故障注入 可观察性:遥测数据、调用跟踪、服务拓扑 服务身份认证、访问鉴权、通信加密 Proxy Application Layer Service 1 Istio 流量管理 – 概览 • 控制面下发流量规则: Pilot • 数据面标准协议:xDS • 集群内Pod流量出入: Sidecar Proxy • 集群外部流量入口:Ingress Gateway • 集群外部流量出口:Egress Gateway(可选,在一个集中点对外部访问进行控制) Istio 流量管理 – 控制面 两类数据: q 服务数据(Mesh 中有哪些服务?缺省路由) v Service Registry § Kubernetes:原生支持 § Consul、Eureka 等其他服务注册表:MCP over xDS (https://github.com/istio-ecosystem/consul-mcp) v 通过CRD定义的服务数据 q 自定义流量规则(如何将请求路由到这些服务?)0 码力 | 20 页 | 11.31 MB | 6 月前3
 全栈服务网格 - Aeraki 助你在
Istio 服务网格中管理任何七层流量@zhaohuabing @zhaohuabing @zhaohuabing @zhaohuabing #IstioCon Agenda ❏ Service Mesh 中的七层流量管理能力 ❏ 几种扩展 Istio 流量管理能力的方法 ❏ Aeraki - 在 Isito 服务网格中管理所有七层流量 ❏ Demo - Dubbo Traffic Management ❏ MetaProtocol Management, Security, Observability) #IstioCon What Do We Expect From a Service Mesh? 为了将基础设施的运维管理从应用代码中剥离,我们需要七层的流量管 理能力: ● Routing based on layer-7 header ○ Load balancing at requet level ○ HTTP host/header/url/method Aeraki Dubbo Plugin 实现了控制面的管理,支持 下述能力: ○ 流量管理: ■ 七层(请求级别)负载均衡 ■ 地域感知负载均衡 ■ 熔断 ■ 基于版本的路由 ■ 基于 Method 的路由 ■ 基于 Header 的路由 ○ 可观测性:七层(请求级别)Metrics ○ 安全:基于 Interface/Method 的服务访问 控制 #IstioCon Aeraki0 码力 | 29 页 | 2.11 MB | 1 年前3
 Istio 在 Free Wheel 微服务中的实践Istio在FreeWheel微服务中的实践 • Istio的架构和基本原理 • FreeWheel的Istio实践 • 未来工作 • FreeWheel的痛点 我们是谁? • FreeWheel 是一家为客户提供数字视频广告管理技术和服务的公司。其业务端产 品需要对接客户,提供视频广告投放优化界面,类似于 Web ERP,是一个典型 的三层架构。 微服务之痛 • 两年来,我们将若干复杂的Rails单体应用拆分、迁移到微服务架构, 模块越来越多,复杂 的通信带来矛盾日渐突出:流量管理、监控… 最初的尝试:Gateway • 如右图,最初我们尝试用一个自研的 简单Gateway来提供统一的认证、授 权、限流、监控,但问题很快凸显出 来了: • Gateway是一个中心化的反向代 理,成为了微服务中的瓶颈,模 块流量会互相影响 • 大锅饭带来了复杂的配置管理, 渐渐难以为继 • Istio的架构和基本原理 • FreeWheel的Istio实践 FreeWheel的Istio实践 • 未来工作 • FreeWheel的痛点 Istio架构 • Istio Proxy: 劫持Pod的所有通信, 是Mesh的基础 • Pilot: 为Proxy提供动态配置管理 • Citadel: 自动维护mTLS密钥 • Mixer: 在k8s中部署了两组Mixer • Policy提供授权、Quota等能力 • Telemetry提供监控数据收集能力0 码力 | 31 页 | 4.21 MB | 1 年前3
共 18 条
- 1
 - 2
 













