Merbridge使用 eBPF 加速服务网格
Merbridge 旨在让 Service Mesh 的流量拦截和转发更加高效。借助 Merbridge,开发人员可以使用 eBPF 而不是 iptables 来加速他们的服务网格,而无需任何额外的操作或代码更改。目前,Merbridge 已经支持 Istio、Linkerd 和 Kuma。
功能:
- 处理outbound流量
- Merbridge使用eBPF的connect程序来修改user_ip和user_port,从而改变连接的目的地址,确保流量可以发送到新的接口。为了帮助Envoy识别原始目的地,应用程序(包括Envoy)在接收连接时将调用get_sockopt函数来获取ORIGINAL_DST。
- 处理inbound 流量
- Inbound流量的处理方式与 outbound流量的处理方式类似。eBPF 无法像 iptables 那样在指定的命名空间中生效,因此更改将是全局的。这意味着如果将 eBPF 应用于原本不是由 Istio 管理的 Pod,或者外部 IP,将会出现严重的问题,例如无法建立连接。为了解决这个问题,开发团队设计了一个小小的控制平面,作为DaemonSet部署。它可以帮助观察并获得节点上所有的Pod列表,类似于kubelet。然后,注入sidecar的Pod IP将被写入local_pod_ips地图中。对于目的地地址不在地图中的流量,Merbridge将不会拦截它。
-
加速联网
-
在Istio中,Envoy通过当前的podIP和端口号访问应用程序。因为podIP存在于local_pod_ips地图中,流量将被重定向到15006端口的podIP,产生一个无限循环。eBPF有什么方法可以获得当前命名空间的IP地址吗?开发团队已经设计了一个反馈机制。当Envoy试图建立一个连接时,会将其重定向到15006端口。当它转移到sockops时,将检查源IP和目标IP是否相同。如果是,这意味着发送了错误的请求,则将在sockops进程中丢弃它。同时,当前的ProcessID和IP将被写入process_ip map中,使eBPF支持进程和IP之间的对应关系。当下一个请求被发送时,将直接从process_ip map中检查目的地是否与当前IP相同。当请求失败时,Envoy将重试。这个重试过程只会发生一次,后续的连接会非常快。
-
评论
金融研究 | 使用Python测量关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
金融研究(更新) | 使用Python构建关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
词向量(更新) | 使用MD&A2001-2022语料训练Word2Vec模型
buTips: 公众号推送后内容只能更改一次,且只能改20字符。 如果内容出问题,或者想更新内容, 只能重复推送。 为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-03-24-load-w2v-and-expand-your-concpe
大邓和他的Python
0
管理世界2024 | 使用管理层讨论与分析测量「企业人工智能指标」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址 https://textdata.cn/blog/2024-04-19-ai-improve-firm-productivity/
大邓和他的Python
0
Python加速运行技巧
Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足。但是,有很多时候,Python 的效率并没有想象中的那么夸张。本文对一些 Python 代码加速运行的技巧进行整理。 0. 代码优化原则 本文会介绍不少的 Python 代码加速运行的技巧。在深入代码优化细
机器学习算法与Python实战
0
springboot第70集:字节跳动后端三面经,一文让你走出微服务迷雾架构周刊
创建一个使用Kubernetes (K8s) 和 Jenkins 来自动化 GitLab 前端项目打包的CI/CD流水线,需要配置多个组件。下面,我将概述一个基本的设置步骤和示例脚本,以帮助你理解如何使用这些工具整合一个自动化流程。前提条件确保你已经有:Kubernetes 集群:用于部署 Jenk
程序源代码
0
一站式解决方案:基于 Arthas 实现服务发现和权限控制
来源:juejin.cn/post/7281849496983994383👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接
小哈学Java
0
GPT的风也吹到了CV,详解自回归视觉模型的先驱! ImageGPT:使用图像序列训练图像 GPT模型
作者丨科技猛兽编辑丨极市平台导读 在 CIFAR-10 上,iGPT 使用 linear probing 实现了 96.3% 的精度,优于有监督的 Wide ResNet,并通过完全微调实现了 99.0% 的精度,匹配顶级监督预训练模型。本文目录1 自回归视觉模型的先驱 ImageGPT:
机器学习初学者
0