Cilium架构简介eBPF数据流向查看

news2024/12/23 13:22:00

d6c12ec6affeb9a26f7d8800e3491b89.gif

1

环境准备

上一篇文章将 k8s 的网络插件改为 cilium 同时部署了观测平台 hubble,部署方式可参考上篇。

基于eBPF的k8s网络插件Cilium部署与流量治理浅尝

本篇讲一下 cilium 的架构和数据流向的查看方式。首先,你需要一个kubernetes集群,并使用了 cilium 网络插件。

f91b06243e2d551b4dfae8606d3784ea.jpeg

部署后可以看到,每个节点上都启动了一个cilium pod,还有一个cilium-operator,进到 cilium pod里,你可以使用 cilium cli工具。

2

cilium架构

Cilium的架构图如下所示。

b233a2a2934187215bd6c82f193f8632.jpeg

Cilium Agent:以 DaemonSet 的方式运行在所有的节点上,负责 eBPF 程序的编辑和挂载,eBPF程序所需要的全局 Maps 的初始化和维护以及 Pod 相关 Maps 的创建和维护,同时负责 iptables 的初始化和维护。

Cilium Operator:负责 IPAM 的相关工作,主要是给主机节点分配 CIDR,给 Pod 分配 ip 地址由主机上的 Cilium Agent 来完成。

Cilium Cli:用来和本地的 Cilium Agent 通信,提供操作 Cilium 的能力。

3

数据流向查看

下面我们使用 cilium cli 工具查看一下数据是如何从 192.168.249.10 发送到192.168.249.12 上的 pod 10.0.0.23 里面的。

cef5d67ca6e58195bdce26e02c6a9a76.jpeg

我们使用cilium map命令,查看192.168.249.10 上的 cilium_ipcache,可以看到在 ebpf 的 map 中记录了,数据发送到 10.0.0.23/32,可以通过endpoint 是 192.168.249.12 的隧道发送。

e693e865dd9cee08c5267a7575a71d13.jpeg

然后查看 192.168.249.12 上的 cilium_ipcache,可以看到,发送给 10.0.0.23/32 时经过的隧道 endpoint 是 0.0.0.0,说明这个 pod 在本节点上面。

49bbf435008af80400171254fd050c60.jpeg

继续查看 192.168.249.12 上的  cilium_lxc,可以看到 10.0.0.23 的 mac 地址是 5A:xx,对应 node 上 lxc 的 mac 地址是 46:xx。

b5566b6474e0822ad3d9b3ba4be5790e.jpeg

我们查看192.168.249.12上面的网络设备,可以看到 mac 地址为 46:xx 的 lxc 设备,该设备对端是 if9,也就是 pod 中的网卡设备,mac 地址应该是上面图中显示的 5A:xx。

0db3380ab87f684e45da013051e2a7a2.jpeg

这样,数据包就通过 eBPF 程序,从192.168.249.10 设备上发送到192.168.249.12 上的 pod 10.0.0.23 内部了。

8ecf01659b7cc4c368c9c97b74562d44.jpeg

点个赞

b69aeb4c634bcf5d7cb2d5895426360b.gif

再走吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/466904.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法记录 | Day43 动态规划

1049.最后一块石头的重量 II 思路: 本题其实就是尽量让石头分成重量相同的两堆,相撞之后剩下的石头最小,这样就化解成01背包问题了。 本题物品的重量为stones[i],物品的价值也为stones[i]。 对应着01背包里的物品重量weight[i…

[学习笔记] [机器学习] 3. KNN( K-近邻算法)及练习案例

视频链接数据集下载地址:《3. KNN及练习案例》配套数据集 1. K-近邻算法(KNN)概念 学习目标: 掌握K-近邻算法实现过程知道K-近邻算法的距离公式知道K-近邻算法的超参数 K K K值以及取值问题知道kd树实现搜索的过程应用KNeighborsClassifier实现分类知…

什么是ERP?可能是全网最权威的解读

ERP的概念定义 ERP是企业资源规划的简称。要理解ERP是什么,最简单的方法是先思考企业正常运营需要的核心业务流程,如财务、HR、制造、供应链、服务、采购等,而 ERP系统最基础的功能就是帮助企业在集成式系统中高效管理这些流程。因为 ERP 系…

烟火识别智能监测系统 yolov5

烟火识别智能监测系统基于pythonyolov5网络模型算法智能分析技术,烟火识别智能监测算法模型对现场画面进行实时分析,发现现场出现烟火立即抓拍实时告警。我们选择当下卷积神经网络YOLOv5来进行火焰识别检测。6月9日,Ultralytics公司开源了YOL…

Day956.代码现代化 -遗留系统现代化实战

代码现代化 Hi,我是阿昌,今天学习记录的是关于代码现代化的内容。 代码现代化的主要模式。 大体的脉络是这样的: 先对代码做可测试化重构,并添加测试;在测试的保护下,安全地重构;在测试的保…

数据链路层相关知识

文章目录 一.数据链路层简介二.MAC地址为什么有了ip地址,我们还要使用mac地址呢? 三.以太网什么是以太网以太网封装帧格式认识MTU谈谈 MTU对IP协议的影响. 一.数据链路层简介 数据链路层的位置和角色:位于物理层和网络层之间,负责实现两个直接相连的节点(主机/路由器)之间的可…

SpringCloud源码之OpenFeign

OpenFeign 基于 OpenFeign 2.2.6.RELEASE版本进行源码阅读 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.2.6.RELEASE</version> </dependen…

Linux_红帽8学习笔记分享_6(yum软件仓库技术)

Linux_红帽8学习笔记分享_6(yum软件仓库技术) 文章目录 Linux_红帽8学习笔记分享_6(yum软件仓库技术)1. RPM软件包的使用技巧1.1如何查询指定软件包是否安装1.2如何删除指定软件包1.3如何安装指定软件包1.5依赖关系 2. YUM软件仓库的配置及使用2.1修改YUM软件仓库的配置文件 3.…

张量、标量、向量和矩阵

张量、标量、向量和矩阵 https://github.com/bovem/publications/tree/master/Linear%20Algebra 张量是一个数据数组(数字、函数等)&#xff0c;它以任意数量(0 或更大)的维度展开。维数称为张量秩。 秩 0 张量 没有维度(0)的张量。 A 是 0 维张量 秩 1 张量 仅在一维中展开的张…

MySQL 字段为 NULL 的5大坑,99%人踩过

数据库字段允许空值(null)的问题&#xff0c;你遇到过吗&#xff1f; 在验证问题之前&#xff0c;我们先建一张测试表及测试数据。 数据库字段允许空值(null)的问题&#xff0c;你遇到过吗&#xff1f; 在验证问题之前&#xff0c;我们先建一张测试表及测试数据。 构建的测试…

如何实现U盘低格?这样操作快速搞定!

案例&#xff1a;怎么对U盘进行低级格式化&#xff1f; 【我的U盘出现了异常&#xff0c;我想对它进行低级格式化处理&#xff0c;有没有小伙伴知道怎么操作&#xff1f;】 随着电脑和移动设备的普及&#xff0c;U盘已经成为我们生活中必不可少的存储工具。当我们使用U盘的时…

xml注入漏洞

一、先认识XML XML有两个先驱——SGML&#xff08;标准通用标记语言&#xff09;和HTML&#xff08;超文本标记语言&#xff09;&#xff0c;这两个语言都是非常成功的标记语言。SGML多用于科技文献和政府办公文件中&#xff0c;SGML非常复杂&#xff0c;其复杂程度对于网络上…

windows中vscode配置C/C++环境

首先要把MinGW的环境安装完&#xff0c;我一般是下载带有MinGW的codeblocks&#xff0c;这样省去自己安装MinGW。因为安装MinGW还挺麻烦的。 安装完codeblocks&#xff0c;找到其安装目录&#xff0c;把bin文件配置到环境变量去&#xff1a; 将bin添加到环境变量 然后打开vsco…

【MySQL高级】——索引数据结构

一、全表遍历 每个数据页一次加载搜索 二、Hash结构 1. Hash简介 2. 两种常见加快查找速度的数据结构 3. 为什么不采用Hash结构 <1> Hash索引仅能满足&#xff0c;!和IN查询。如果进行范围查询&#xff0c;哈希型的索引&#xff0c;时间复杂度会退化为o(n);而树型的“…

PLUS模型和InVEST模型生态系统服务多情景模拟预测、ArcGIS空间数据处理、空间分析与制图、土地利用时空变化

查看原文>>>基于”PLUS模型“生态系统服务多情景模拟预测实践技术应用 目录 第一章、理论基础与软件讲解 第二章、数据获取与制备 第三章、土地利用格局模拟 第四章、生态系统服务评估 第五章、时空变化及驱动机制分析 第六章、论文撰写技巧及案例分析 基于Ar…

B端产品如何搭建用户帮助体系

用户帮助体系可以提升用户的使用体验&#xff0c;引导用户正确的使用产品&#xff0c;并且体验产品的各个功能&#xff0c;B端产品因为其特殊的业务属性和复杂度&#xff0c;通常其学习成本不低。这些成本不仅仅体现在对于复杂业务概念及流程的认知方面&#xff0c;同时体现在整…

零信任网络安全:为什么越来越多的企业选择采用这一方法?

第一章&#xff1a;引言 随着信息化技术的发展和普及&#xff0c;网络安全问题日益严峻&#xff0c;黑客攻击、病毒感染、数据泄露等问题层出不穷&#xff0c;给企业带来了极大的损失。为了保障企业信息安全&#xff0c;企业采取了一系列安全措施&#xff0c;比如加强防火墙、…

【JavaScript】8.DOM的节点操作

DOM的节点操作 获取元素通常使用两种方式&#xff1a; 利用 DOM 提供的方法获取元素利用节点层级关系获取元素 利用 DOM 提供的方法获取元素 document.getElementById()document.getElementsByTagName()document.querySelector 等逻辑性不强、繁琐 利用节点层级关系获取元素 利…

vite中使用html2canvas 将img、svg和div转canvas

目录 div转canvas svg转canvas img转canvas div转canvas 使用 html2canvas 插件&#xff0c;其官网&#xff1a;html2canvas - Screenshots with JavaScripthttp://html2canvas.hertzen.com/ 安装html2canvas&#xff1a; npm i -S html2canvas 引入&#xff1a; import h…

zotero文献管理软件应用

文章目录 基础教学快速安装与入门第二部分&#xff0c;比较详细的教学与补充文献管理工具比较浏览器插件获取文献与文献pdfZotero 界面添加文件的其他方式管理题录在论文中插入引文文献同步插件与常见问题茉莉花PDFTranslator常见问题1.CNKI页面批量抓取题录失败2.文献类型标识…