SOFAMesh的通用协议扩展
SOFA MESH 的通用协议扩展 Service Mesh Meetup #3 深圳站 邵俊雄(熊啸) 2018.08.25AGENDA • SOFA MESH 介绍 • SERVICE MESH 落地的问题 • SOFA MESH 的通用落地方案 • DNS 服务寻址方案 • X-PROTOCOL 通用协议 • 问答SOFA MESH • 从 ISTIO 克隆并保持同步更新 • 使用 使用 Controller Pattern 通过 CRD 扩展新的能力 • …MESH 落地碰到的问题 • 客户端服务发现与负载均衡无法与 ISTIO 一起工作 • ENVOY 不支持微服务使用的通信协议 • RPC 服务使用的接口,方法,参数语义无法匹配 ISTIO 的路由模 型 • 一个应用上部署了多个 RPC 服务,每个服务有自己的版本 • …ISTIO 控制平面路由的抽象模型 INBOUND DUBBO 服务的路由规则 XDS 适配 • 开发 DUBBO 协议支持SOFA MESH 的统一解决方案 • 采用 Kubernetes Native 方式落地微服务应用 • 使用 INTERFACE 作为 DNS 来寻址服务 • 开发一个通用协议处理框架 • 避免为不同的微服务框架修改 PILOT 代码 • 通过插件的方式按需支持新的协议 • 对应用代码无侵入性 • 为微服务框架提供轻量化客户端落地一个微服务框架需要的工作0 码力 | 28 页 | 4.73 MB | 5 月前313 Istio 流量管理原理与协议扩展 赵化冰
Istio 流量管理原理与协议扩展 赵化冰 赵化冰 腾讯云 服务网格团队 https://zhaohuabing.com Service Mesh Service Mesh Layer 处理服务间通信(主要是七层通信)的云原生基础设施层: Service Mesh 将各个服务中原来使用 SDK 实现的七层通信相关功能抽象 出来,使用一个专用层次来实现,Service Mesh 对应用透明,因此应用 通信安全: 服务身份认证、访问鉴权、通信加密 Proxy Application Layer Service 1 Istio 流量管理 – 概览 • 控制面下发流量规则: Pilot • 数据面标准协议:xDS • 集群内Pod流量出入: Sidecar Proxy • 集群外部流量入口:Ingress Gateway • 集群外部流量出口:Egress Gateway(可选,在一个集中点对外部访问进行控制) Service CLB 对外请求 对外请求(Passthrough/ServiceEntry) 缺省路由 (服务名) 5 Istio 流量管理 – 数据面 – Envoy配置模型和xDS协议 ADS Server LDS RDS CDS EDS Envoy 配置模型的主要概念: • Downstream:连接到 Envoy 的下游 Host,发送请求并接收响应。 • Upstream:0 码力 | 20 页 | 11.31 MB | 5 月前3API7 ⽹关技术⽩⽪书
K8s等领域有⼤量实践 经验,使得API7可以轻松⽀持毫秒级配置更新、⽀撑数千⽹关节点;⽹关节点⽆状态,可任意扩容或 缩容; 协议转换 3. ⽀持丰富的协议类型,如TCP/UDP、Dubbo、MQTT、gRPC、SOAP、WebSocket等; 安全防护 4. 内置多种⾝份验证与安全防护能⼒,如BasicAuth、JSONWebToken、IP⿊⽩名单、OAuth等; 请求中Header、Query、Cookie等参数进⾏分 流; • 协议转换:API7⽀持丰富的协议,如TCP/UDP、Dubbo、MQTT、gRPC、WebSocket等,并能 够实现HTTP协议到后端服务其它协议的转换。API⽹关对外暴露统⼀HTTP⼊⼝,管理员可通过 控制台界⾯完成协议转换设置,⽀持请求与后端服务的参数映射; • 服务治理:API7⽀持熔断 4功能列表 分类 功能模块 功能点 API7 Kon g Zuul 2 Ngin x SpringCloud Gateway API 和服 务治 理 协议⽀持 HTTP/1.1、HTTP2 ✔ ✔ ✔ ✔ ✔ HTTP/3 ✔ ✔ ✖ ✖ ✔ TLS/HTTPS ✔ ✔ ✔ ✔ ✔ MQTT0 码力 | 19 页 | 1.12 MB | 1 年前3OpenShift Container Platform 4.6 网络
第 第 8 章 章 在裸机集群中使用流控制 在裸机集群中使用流控制传输协议 传输协议 (SCTP) 8.1. 支持 OPENSHIFT CONTAINER PLATFORM 上的流控制传输协议 (SCTP) 8.1.1. 使用 SCTP 协议的示例配置 8.2. 启用流控制传输协议 (SCTP) 8.3. 验证流控制传输协议 (SCTP) 已启用 第 第 9 章 章 配置 配置 PTP 硬件 Ingress Controller 的全局设置值。 6.8.11. 启用 HTTP/2 入口连接 您可以在 HAProxy 中启用透明端到端的 HTTP/2 连接。此功能使应用程序所有者利用 HTTP/2 协议功 能,包括单一连接、标头压缩、二 进制流等等。 您可以为单独的 Ingress Controller 或整个集群启用 HTTP/2 连接。 要在从客户端到 HAProxy 的连接中启用 HTT edge-terminated 路由。 警告 警告 使用重新加密路由,在 Ingress Controller 上启用了 HTTP/2 的 WebSockets 需要通 过 HTTP/2 支持 WebSocket。HTTP/2 的 websocket 是 HAProxy 2.4 的一个功能, 目前在 OpenShift Container Platform 中不被支持。 重要 重要 对于非 passthrough 路由,Ingress0 码力 | 256 页 | 2.78 MB | 1 年前3OpenShift Container Platform 4.9 网络
IP 故障切换 第 第 10 章 章 在裸机集群中使用流控制 在裸机集群中使用流控制传输协议 传输协议 (SCTP) 10.1. 支持 OPENSHIFT CONTAINER PLATFORM 上的流控制传输协议 (SCTP) 10.2. 启用流控制传输协议 (SCTP) 10.3. 验证流控制传输协议 (SCTP) 已启用 第 第 11 章 章 使用 使用 PTP 硬件 硬件 11.1 OpenShift Container Platform 的服务和路由提供名称解析。 基于 基于 HTTP 的路由 的路由 基于 HTTP 的路由是一个不受保护的路由,它使用基本的 HTTP 路由协议,并在未安全的应用程序端 口上公开服务。 入口 入口 OpenShift Container Platform 中的 Kubernetes Ingress 资源通过作为集群内 pod 运行的共享路由器 (SDN) 方法来提供一个统一的集群网络,它允许 OpenShift Container Platform 集群中的不同 pod 相互间进行通信。 流控制 流控制传输协议 传输协议 (SCTP) SCTP 是基于信息的可靠协议,可在 IP 网络之上运行。 taint 污点和容限可确保将 pod 调度到适当的节点上。您可以在节点上应用一个或多个污点。 容限 容限 (tolerations)0 码力 | 388 页 | 4.04 MB | 1 年前3OpenShift Container Platform 4.13 网络
配置调优 CNI 17.2. 其他资源 第 第 18 章 章 在裸机集群中使用流控制 在裸机集群中使用流控制传输协议 传输协议 (SCTP) 18.1. 支持 OPENSHIFT CONTAINER PLATFORM 上的流控制传输协议 (SCTP) 18.2. 启用流控制传输协议 (SCTP) 83 83 85 85 90 90 92 92 92 92 93 93 94 94 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3. 验证流控制传输协议 (SCTP) 已启用 第 第 19 章 章 使用 使用 PTP 硬件 硬件 19.1. 关于 PTP 硬件 19.2. 关于 PTP 19.3. OPENSHIFT CONTAINER PLATFORM OpenShift Container Platform 的服务和路由提供名称解析。 基于 基于 HTTP 的路由 的路由 基于 HTTP 的路由是一个不受保护的路由,它使用基本的 HTTP 路由协议,并在未安全的应用程序端 口上公开服务。 入口 入口 OpenShift Container Platform 中的 Kubernetes Ingress 资源通过作为集群内 pod 运行的共享路由器0 码力 | 697 页 | 7.55 MB | 1 年前3云原生安全威胁分析与能力建设白皮书(来源:中国联通研究院)
API Server 代理到 Kubelet 的高权限 websocket 连接。 2. 利用高权限 websocket 连接,向 Kubelet 发起/runningpods/请求,获 得当前活动 Pod 列表。 3. 从活动 Pod 列表中找到 k8s API Server 的 Pod 名称。 4. 利用高权限 websocket 连接,向 Kubelet 发起/exec 请求,指定 Pod 参数,从返回结果中保存窃取到的文件。 5. 利用高权限 websocket 连接,向 Kubelet 发起/exec 请求,指定 Pod 为上一步中获得的 Pod 名称,携带“利用 cat 命令读取 ‘apiserver-kubelet-client.crt’”作为参数,从返回结果中保存窃取到 的文件。 云原生安全威胁分析与能力建设白皮书 42 6. 利用高权限 websocket 连接,向 Kubelet 发起/exec 三个参数,该代码中构造的错误 请求/api/v1/namespaces/{namespace}/pods/{pod}/exec 未包含对应的参 数,由此利用系统漏洞代理到 Kubelet 的高权限 websocket 连接[28]。 3.4Istio 认证策略绕过攻击 3.4.1 攻击场景介绍 Istio 目前已作为微服务治理框架的代表,在 Istio 中 JWT 认证策略通常通 过配置一个 YAML0 码力 | 72 页 | 2.44 MB | 1 年前3严选 ServiceMesh 实践
基于严选第一代ServiceMesh(cNginx) 类型 功能 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:基于 Consul √ 调用控制 协议支持:HTTP 1.X/2.X,可扩展至 TCP √ 路由控制:提供简单的路由能力 √ 负载均衡:支持 RR、权重、一致性 Hash 等 √ 流量复制:不提供 × 故障转移:继承 Nginx 基础架构与业务架构可以独立演进 • 为多语言栈提供了服务治理能力7/24 持续演进的诉求 • 提供高质量的服务治理能力 • 增强流量管理能力 • 将更多治理特性(如限流、熔断、故障注入)与业务架构解耦 • 支持更多的协议 • 增强控制面 • 配合业务容器化上云及混合云架构8/24 行业技术演进 - 通用型 Service Mesh 出现 2017年1月23日 加入 CNCF 2017年4月25日 1.0Releases 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:云外基于 Consul,云内基于 K8s 默认的 ETCD √ 调用控制 协议支持:HTTP 1.X/2.X,GRPC,WebSocket,Dubbo, Thrift √ 路由控制:静态路由、动态路由、流量染色、分流控制等 √ 负载均衡:支持 RR、权重、一致性 Hash 等 √ 流量复制:Envoy0 码力 | 25 页 | 2.07 MB | 5 月前3Rainbond服务日志管理
rbd-eventlog组件功能与⻆角⾊色 NODE服务会监视DOCKERD进程,观察其创建与销毁容器。获取⽂件系统中容器⽇志的路径, 监视来⾃容器标准输出和标准错误输出,并以UDP协议分发到RBD-EVENTLOG组件。 接收来⾃NODE服务的推送,⽤WEBSOCKET协议将⽇志内容推送到⽤户所操作的应⽤控制台。 RAINBOND 线上培训(第⼋八期) 2019/7/31 2.对接ELASTICSEARCH0 码力 | 11 页 | 1.62 MB | 1 年前3从Apache APISIX 来看API 网关的演进
证书、动态限流限速 • 主动/被动健康检查、服务熔断 云原生下的新功能 • 对接 Prometheus、Zipkin、Skywalking • gRPC 代理和协议转换(REST <=> gRPC)、websocket • 身份认证:OpenID Relying Party、OP(Auth0、okta…) • Serverless • 高性能、无状态、随意扩容和缩容 • 支持多云、混合云 多次的流量转发,不适合对性能要求高的场景 • 不如 Nginx 稳定 下一代微服务会是怎样? • 分久必合,抛弃 sidecar • 走向中心节点或者集群的模式 • 也就是下一代网关:全动态、全协议支持、高性能、云原生友好 我希望 Apache APISIX 可以担此重任! Q&A0 码力 | 24 页 | 1.36 MB | 1 年前3
共 147 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15