《云原生网络数据面可观测性最佳实践》——二、全景剖析阿里云容器网络数据链路——2. Terway ENI 模式架构设计(中)

简介: 《云原生网络数据面可观测性最佳实践》——二、全景剖析阿里云容器网络数据链路——2. Terway ENI 模式架构设计(中)

更多精彩内容,欢迎观看:

《云原生网络数据面可观测性最佳实践》——二、全景剖析阿里云容器网络数据链路——2. Terway ENI 模式架构设计(上):https://developer.aliyun.com/article/1221647?groupCode=supportservice


4) 场景三:访问Pod IP,异节点pod访问pod

环境

image.png ap-southeast-1.10.0.0.196节点上存在pod:centos-59cdc5c9c4-89f8x IP地址10.0.0.202

ap-southeast-1.10.0.2.80节点上存在pod:nginx-6f545cb57c-jmbrq和10.0.2.86

内核路由

centos-59cdc5c9c4-89f8x IP地址10.0.0.202,该容器在宿主机表现的PID是2314075,该容器网络命名空间有指向容器eth0的默认路由。和下一跳为veth1,目的网段为service的两条路由

 image.png

image.png

image.png 

通过上述类似的办法,可以找到 nginx-6f545cb57c-jmbrq IP地址 10.0.2.86,该容器在宿主机表现的PID是1083623

image.pngimage.png

小结

可以访问到目

centos-59cdc5c9c4-89f8x netns eth0 可以抓到数据包。

image.png 

nginx-6f545cb57c-jmbrq netns eth0 可以抓到数据包。

 image.png

 

数据链路转发示意图:

 image.png

 

数据链路是ECS1 Pod1 netns eth0 -> VPC ->ECS2 Pod2 netns eth0数据链路不经过宿主机host namespace,数据链路会先出ECS1,到AVS再回到ECS2

pod内的net namespace中,直接命中默认路由规则,从eth0网卡出pod直接到VPC这里eth0 其实就是附属网卡ENI,直接被挂载在了pod的net ns走了PCI设备

该网卡为被分配pod独占无法和其他pod进行共享

数据链路经过两次协议栈

 

5) 场景四:集群内访问SVC IP (Cluster IP),源端和SVC后端Pod为同一节点

环境

image.png

 image.png

ap-southeast-1.10.0.0.196节点上存在两个pod:centos-59cdc5c9c4-89f8x IP地址10.0.0.202和nginx1-5969d8fc89-9t99h和10.0.0.203

Service是nginx1集群内clusterIP是192.168.41.244,external IP是8.219.175.179

内核路由

centos-59cdc5c9c4-89f8x IP地址10.0.0.202,该容器在宿主机表现的PID是2314075,该容器网络命名空间有指向容器eth0的默认路由。和下一跳为veth1,目的网段为service的两条路由

 image.pngimage.png

 

该容器eth0在ECS OS 内对应veth pair是cali38ef34581a9

 image.png

image.png

通过上述类似的办法,可以找到 nginx1-5969d8fc89-9t99h  IP地址10.0.0.203,该容器在宿主机表现的PID是1094736,该容器eth0在ECS OS 内对应veth pair是cali5068e632525

image.png

 

在ECS OS内,有指向Pod IP,下一跳为calixxxx的路由,通过前文可以知道calixxx网卡是和每个pod内的veth1组成的pair,所以,pod内访问SVC的CIDR会有指向veth1的路由,不会走默认的eth0路由。

 

故calixx网卡在这里的主要作用是用于:节点访问Pod 2. 当节点或者Pod访问 SVC的CIDR时,会走ECS OS内核协议栈转换,走到calixxx和veth1访问pod

 image.png


小结

可以访问到目的端

centos-59cdc5c9c4-89f8x netns veth1 可以抓到数据包。

image.png

 

centos-59cdc5c9c4-89f8x netns cali38ef34581a9 可以抓到数据包。

 image.png

nginx1-5969d8fc89-9t99h netns veth1 可以抓到数据包。

 image.png

 

nginx1-5969d8fc89-9t99h netns cali5068e632525 可以抓到数据包。

 

 image.png


数据链路转发示意图:

 image.png

 

 

数据链路是ECS1 Pod1 netns veth1 -> calixxx1 -> calixxx2->ECS2 Pod2 netns veth1

pod内的net namespace中,命中svc路由,从veth1网卡出pod到ECSnamespace,然后通过linux routing 转到另一个pod的calixx 网卡这里veth1和calixxx是veth pair

源端pod所分配veth,calicoxxx网卡可以捕获到svc IP源端pod IPSVC IP 会在源端ECS host内命中ipvs/iptables规则,做了nat转化

段pod所分配veth,calicoxxx网卡可以捕获calicoxxx网卡默认ip和目pod IP

该网卡为被分配pod独占无法和其他pod进行共享

数据链路经过三次协议栈:Pod1,ECS OSPod2

6) 场景五:集群内访问SVC IP (Cluster IP),源端和SVC后端Pod为不同节点

环境image.png image.png

ap-southeast-1.10.0.0.196节点上存在pod:centos-59cdc5c9c4-89f8x IP地址10.0.0.202

ap-southeast-1.10.0.2.80节点上存在pod:nginx-6f545cb57c-jmbrq和10.0.2.86

Service是nginx集群内clusterIP是192.168.204.233,external IP是8.219.199.33

内核路由

centos-59cdc5c9c4-89f8x IP地址10.0.0.202,该容器在宿主机表现的PID是2314075,该容器网络命名空间有指向容器eth0的默认路由。和下一跳为veth1,目的网段为service的两条路由

 image.png

image.png

该容器eth0在ECS OS 内对应veth pair是cali38ef34581a9

image.png

image.png

 

通过上述类似的办法,可以找到 nginx-6f545cb57c-jmbrq   IP地址 10.0.2.86,该容器在宿主机表现的PID是1083623,该pod网卡ENI是直接被挂载到了Pod的网络命名空间内。

 image.png

image.png

小结

可以访问到目

数据链路转发示意图:

image.png

 

数据链路ECS1 Pod1 netns veth1 -> cali38ef34581a9 ->ECS1 eth0 -> VPC ->ECS2 Pod2 netns veth1

在客户端pod内的net namespace中,命中svc路由,从veth1网卡出pod到ECSnamespace,然后通过linux routing 转到客户端ECS eth0 网卡, 然后进入到vpc转发到的Pod所属eth网卡

源端pod所分配veth,calicoxxx网卡可以捕获到svc IP源端pod IP

SVC IP 会在源端ECS host内命中ipvs/iptables规则,做了fnat转化在源端ECS 所属eth0只能捕获到ipvs/iptables规则所分配pod IP和源ECS IP

的pod内eth0所捕获IP 是源端ECS IPPOD IP(源POD IPSVC IP不会体现)

该网卡为被分配pod独占无法和其他pod进行共享

数据链路经过三次协议栈:Pod1,ECS1 OSPod2

更多精彩内容,欢迎观看:

《云原生网络数据面可观测性最佳实践》——二、全景剖析阿里云容器网络数据链路——2. Terway ENI 模式架构设计(下):https://developer.aliyun.com/article/1221643?groupCode=supportservice

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
人工智能 Cloud Native 安全
解读阿里云刚发布的《AI 原生应用架构白皮书》
阿里云在云栖大会重磅发布了《AI 原生应用架构白皮书》,该白皮书覆盖 AI 原生应用的 11 大关键要素,获得业界 15 位专家联名推荐,来自 40 多位一线工程师实践心得,全书合计超 20w 字,分为 11 章,全面、系统地解构 AI 原生应用架构,包含了 AI 原生应用的 11 大关键要素,模型、框架、提示词、RAG、记忆、工具、网关、运行时、可观测、评估和安全。本文整理自阿里云智能技术专家李艳林在云栖大会现场的解读。
1841 41
|
3月前
|
人工智能 缓存 安全
阿里云发布《AI 原生应用架构白皮书》
阿里云联合阿里巴巴爱橙科技,共同发布《AI 原生应用架构白皮书》,围绕 AI 原生应用的 DevOps 全生命周期,从架构设计、技术选型、工程实践到运维优化,对概念和重难点进行系统的拆解,并尝试提供一些解题思路。白皮书覆盖 AI 原生应用的 11 大关键要素,获得 15 位业界专家联名推荐,来自 40 多位一线工程师实践心的,全书合计超 20w 字,分为 11 章。
2147 23
|
2月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
2月前
|
人工智能 缓存 安全
阿里云发布《AI 原生应用架构白皮书》!
阿里云联合爱橙科技发布《AI原生应用架构白皮书》,系统解析AI应用在架构设计、开发运维中的关键挑战与解决方案,涵盖大模型、Agent、RAG、安全等11大核心要素,助力企业构建稳定、高效、可控的AI应用体系。
阿里云发布《AI 原生应用架构白皮书》!
|
2月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
358 2
|
2月前
|
人工智能 Kubernetes Cloud Native
Higress(云原生AI网关) 架构学习指南
Higress 架构学习指南 🚀写在前面: 嘿,欢迎你来到 Higress 的学习之旅!
544 0
|
3月前
|
存储 人工智能 关系型数据库
阿里云AnalyticDB for PostgreSQL 入选VLDB 2025:统一架构破局HTAP,Beam+Laser引擎赋能Data+AI融合新范式
在数据驱动与人工智能深度融合的时代,企业对数据仓库的需求早已超越“查得快”这一基础能力。面对传统数仓挑战,阿里云瑶池数据库AnalyticDB for PostgreSQL(简称ADB-PG)创新性地构建了统一架构下的Shared-Nothing与Shared-Storage双模融合体系,并自主研发Beam混合存储引擎与Laser向量化执行引擎,全面解决HTAP场景下性能、弹性、成本与实时性的矛盾。 近日,相关研究成果发表于在英国伦敦召开的数据库领域顶级会议 VLDB 2025,标志着中国自研云数仓技术再次登上国际舞台。
365 0
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
312 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式

热门文章

最新文章