《云原生网络数据面可观测性最佳实践》——二、全景剖析阿里云容器网络数据链路——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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
人工智能 弹性计算 运维
ACK Edge与IDC:高效容器网络通信新突破
本文介绍如何基于ACK Edge以及高效的容器网络插件管理IDC进行容器化。
|
10天前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
17天前
|
Kubernetes 安全 数据安全/隐私保护
云卓越架构:容器安全最佳实践
本次分享由阿里云智能集团解决方案架构师张玉峰主讲,主题为“云卓越架构:容器安全最佳实践”。内容涵盖容器安全的挑战、云原生容器安全架构及典型场景。首先分析了容器安全面临的问题,如镜像漏洞和权限管理。接着介绍了容器安全架构的五个维度:身份权限管理、配置安全检查、运行时防护、镜像安全检测及发布的安全管控。最后通过具体场景展示了容器身份与权限管理、密钥管理、运行时防入侵等最佳实践,强调了安全左移的重要性,确保从开发到运行的全生命周期安全覆盖。
|
1月前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
113 3
图卷积网络入门:数学基础与架构设计
|
2月前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
54 5
|
2月前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
2月前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
2月前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?
|
2月前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
72 1
|
3月前
|
弹性计算 Kubernetes 网络协议
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程