SolarMesh 基于Istio构建的流量监管平台
Copyright © 2021 Cloud To Go 为什么我们需要服务网格 - 业务上k8s带来的问题 Ø 集群内的情况不可见 Ø 环境不统一,很难复现问题 Ø 集群中的网络限制 Ø ... Ø 学习k8s成高 Ø 测试方法发生了改变 Ø 有些问题只能在集群内出 现,难以测试 Ø ... 测试难 运维难 Ø 学习k8s成高 Ø 缺少好用的工具 Ø ... 排错难 Copyright © 2021 Cloud To Go 应用场景 - 异地容灾 通过智能路由实现异地容灾 在SolarMesh中,只需要声明哪些 集群是属于同一个mesh,借助istio 的智能路由能力,同名service将会 获得多集群容灾的能力 流量将会按照策略智能分配到正常 的工作负载上 Copyright © 2021 Cloud To Go SolarMesh的架构设计 核心组件少安装简单,轻量的架构赋予SolarMesh极低的资源占用以及极低的维护成本 •规范 标准的istio规范操作,实时反映真实集群状态,告别terminal。 •便捷 一键安装,UI操作,流量策略模板复用,批量设置 •多集群支持,零成本接入 流量视图提供统一的拓扑图界面,让您的视角可以统揽全局 •附加组件 •Jaeger,为SolarMesh提供分布式链路追踪的能力0 码力 | 20 页 | 1.29 MB | 1 年前3Envoy原理介绍及线上问题踩坑
Pilot-agent进程本身创建UDS接收Envoy连接,用于证书更新下发。并且与istiod建立证书更新通道。 • Envoy 通过pilot-agent转发机制与istiod建立长连接,通过xDS协议接收系统下发的监听器、路由、集群节点等更新信息。 • 3. 数据面通信 • 客户端请求进入容器网络,并被iptables规则拦截,经过DNAT后进入Envoy virtualOutbound监听器 • virtualOutb /envoy.service.secret.v3.SecretDiscoveryService/StreamSecrets 监听端口,连接入口 L4过滤,请求入口 L7过滤 路由策略 上游集群 目标主机策略,请求出口 Copyright © Huawei Technologies Co., Ltd. All rights reserved. Page 10 Envoy常用部署方式 Page 13 Envoy网络及线程模型-集群信息更新 • 1. Envoy需要在运行中支持添加集群并监控每个集群内目标主机列表变化 • 2. 监控到目标主机健康状态变化时,需要通知到工作线程内主机可用状态。 • 3. 当收到节点变化EDS消息时,需要通知到工作线程内新上线、下线主机。 • 4. Envoy使用前面提到的TLS方式实现集群状态更新,集群管理器保存一个TLS slot ,类型为0 码力 | 30 页 | 2.67 MB | 1 年前313 Istio 流量管理原理与协议扩展 赵化冰
Layer Service 1 Istio 流量管理 – 概览 • 控制面下发流量规则: Pilot • 数据面标准协议:xDS • 集群内Pod流量出入: Sidecar Proxy • 集群外部流量入口:Ingress Gateway • 集群外部流量出口:Egress Gateway(可选,在一个集中点对外部访问进行控制) • Service discovery • Load balancing 可以绑定到端口上直接对外服务,也可以不绑 定到端口上,而是接收其他 listener 转发的请求。 • Cluster:集群是指 Envoy 连接的一组上游主机,集群中的主机是对等的,对外提供相 同的服务,组成了一个可以提供负载均衡和高可用的服务集群。Envoy 通过负载均衡 策略决定将请求路由到哪个集群成员。 xDS 协议的主要概念: • Listener Discovery Service (LDS) : 监听器发现服务。 监听器发现服务。 • Route Discovery Service(RDS) : 路由发现服务。 • Cluster Discovery Service (CDS): 集群发现服务。 • Endpoint Discovery Service (EDS) :集群中的服务实例发现服务。 • Secret Discovery Service (SDS) :证书发现服务。 • Aggregated Discovery Service(ADS):0 码力 | 20 页 | 11.31 MB | 5 月前3在网格的边缘试探:企业 Istio 试水指南
策略 • 安全试用服务范围 • 不要 All in! • 稳定——性能和业务! • 什么服务不怕死? • 什么服务可以慢? • 集群规模别太大。 • 能切换/回滚。 • 有完善的性能、功能测试方案。禁则 �������� ����� ����制定目标 • 集群环境申请:版本、开关、资源等。 • 功能性需求:本次试用中Istio需要提供的功能,再次强调:No Freestyle • 非功 非功能需求:并发、成功率、响应时间等服务质量参数。 • 故障处理需求:故障预案。 • 影响范围分析。 • 选定测试版本:研读开放Issue以及Release Notes。测试方案部署 • Istio部署 • 复查集群环境 • 调整资源参数 • 调整亲和性参数 • 调整HPA • 日志输出和调试开关复查 • Istio功能裁剪 • 备用业务部署 • 试用服务部署 • 服务YAML复查 • 缺省路由设置 • 根据功能需求,编写和部署0 码力 | 19 页 | 11.41 MB | 5 月前3Istio + MOSN 在 Dubbo 场景下的探索之路
• 数据面改造 • 控制面适配20/23 数据面改造21/23 控制面适配 通过一个独立的进程(Adapter) • 对接注册中心 • 对接配置中心 • 连接多个集群 • 根据服务的信息结合配置信息下发对应的集群的资源22/23 多点Service Mesh改造架构图23/23 Demo 演示 说明 • 由于没有真正的注册,所以使用手动添加 ServiceEntry 的方式代替0 码力 | 25 页 | 3.71 MB | 5 月前3Kubernetes容器应用基于Istio的灰度发布实践
"unknown" response_code: response.code | 200 Istio & Kubernetes: 总结 对于云原生应用,采用Kubernetes构建微服务部署和集群管理能力,采用 Istio构建服务治理能力,将逐渐成为应用微服务转型的标准配置。 Agenda • Istio & Kubernetes • Istio & Kubernetes上的灰度发布 基于K8S的Serverless容器服务 云容器引擎 企业级高可靠、高性能K8S服务 服务网格 K8S原生Service Mesh Istio在华为云:华为云容器应用 Istio在华为云:服务网格 只需在创建集群时选 择“启用服务网格” 即可使用Istio服务治 理功能 Istio在华为云: 灰度发布流程 Y N Y N Istio在华为云: 灰度发布 Istio & Kubernetes 在Google0 码力 | 38 页 | 14.93 MB | 1 年前3Kubernetes容器应用基于Istio的灰度发布实践
"unknown" response_code: response.code | 20015 Istio & Kubernetes: 总结 对于云原生应用,采用Kubernetes构建微服务部署和集群管理能力,采用 Istio构建服务治理能力,将逐渐成为应用微服务转型的标准配置。16 Agenda • Istio & Kubernetes • Istio & Kubernetes上的灰度发布17 基于K8S的Serverless容器服务 云容器引擎 企业级高可靠、高性能K8S服务 服务网格 K8S原生Service Mesh28 Istio在华为云:华为云容器应用29 Istio在华为云:服务网格 只需在创建集群时选 择“启用服务网格” 即可使用Istio服务治 理功能30 Istio在华为云: 灰度发布流程 Y N Y N31 Istio在华为云: 灰度发布32 Istio & Kubernetes0 码力 | 34 页 | 2.64 MB | 5 月前3Extending service mesh capabilities using a streamlined way based on WASM and ORAS
UpdateMeshFeature -- ServiceMeshId=xxxxxx --WebAssemblyFilterEnabled=true ○ 部署一个DaemonSet(asmwasm-controller)到K8s集群中 ○ asmwasm-controller监听一个configmap, 该configmap存放要拉取的wasm filter 的地址, 例如: acree-1-registry.cn-hangzhou Deployment 资源对象 Controller (Watch & Reconcile) Istio EnvoyFilter CR wasm filter二进 制文件 服务网格ASM Pod K8s集群 Proxy Service A Volume 挂载 Envoy配置 17 ASMFilterDeployment CR示例 ● 创建ASMFilterDeployment Custom0 码力 | 23 页 | 2.67 MB | 1 年前3Istio 与 Knative 踩坑实录
1 版本 486 天 服务范围 覆盖了不同业务链路的四十余个服务 40+ 服务 K8S安装环境 覆盖自建机房、IDC机房、云主机、海外云 服务等各种环境和不同的K8S版本 5 集群 服务网格实践进展5/25 Istio Community 服务网格实践进展6/25 Knative FAAS实践进展7/25 Faas(函数即服务)基础设施 FAAS实践进展8/250 码力 | 26 页 | 1.35 MB | 5 月前3Istio 在 Free Wheel 微服务中的实践
应控制在k级别,达到 10k 量级后响应可能会出现超 时导致配置读写状态异常,进而影响整个系统稳定性 实践总结 • Istio配置管理有局限性: • Endpoint的配置管理有防抖动处理,即使集群中的部署变化再快, 也不会阻塞Istio • Istio其他配置管理没有防抖动处理( VirtualService/DestinationRule等),如果用程序自动化注入这些 配置要注意在客户端实现限流0 码力 | 31 页 | 4.21 MB | 1 年前3
共 15 条
- 1
- 2