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

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

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

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


3) 场景二:Client和服务端Pod部署于不同ECS

此场景包含下面几个子场景,数据链路可以归纳为一种:

以Pod IP对外提供服务,Client和Pod部署于不同节点;

以SVC ClusterIP对外提供服务,Client和SVC 后端Pod部署于不同节点;

以SVC ExternalIP对外提供服务,ExternalTrafficPolicy为Cluster情况下,集群内Client和SVC后端Pod部署于不同节点;

环境

image.png

 

ap-southeast-1.10.0.0.180节点上存在两个pod:centos-67756b6dc8-rmmxt IP地址172.23.96.23和nginx1-76c99b49df-7plsr IP 地址172.23.96.163

Service nginx1的ExternalTrafficPlicy 为Cluster

 image.png

 

内核路由

Pod网络空间和ECS OS 网络空间的数据交换在 2.1 场景一中已经做了详细描述,此处不再果断篇幅描述。

源端Pod所在ECS的IPVS规则

可以看到,源端数据链路访问svc的clusterip 192.168.13.23 时,如果链路到达ECS的OS内,会命中ipvs规则,被解析到svc的后端endpoint之一(本实例中只有一个pod,所以endpoint只有一个)

image.png

 

小结

可以成功访问到目的端

数据链路转发示意图

image.png

VPC 路由表会自动配置目的地址是pod CIDR,下一跳为Pod 网段所归属的ECS的自定义路由条目,该规则由ACK管控测通过openapi 调用VPC去配置,无需手动配置和删除

image.png

 

内核协议栈示意图:

image.png

 

Conntack 表信息(访问SVC 情况)

 

Node1:

src是源pod IP,dst是svc的ClusterIP,并且期望是由svc的其中一个endpoint

172.23.96.163 来回消息给源端podimage.png 

Node2:

目的pod所在ECS上conntrack 表记录是由源端pod访问目的pod,不会记录svc的clusterip地址

image.png

数据链路:ECS1 Pod1 eth0 -> vethxxx1 -> cni0 ->ECS 1 eth0 -> VPC ->ECS2 eth0 -> cni0 -> vethxxxx2 ->ECS2 Pod2 eth0

数据链路要经过四次内核协议栈,分别是Pod1协议栈,ECS1 OS协议栈,ECS2 OS协议栈和Pod2协议

VPC 路由表会自动配置目地址是pod CIDR下一跳为Pod 网段所归属ECS自定义路由条目,该规则由ACK管控测通过openapi 调用VPC去配置,无需手动配置和删除

如果访问SVC的Cluster IP,或者是Cluster模式下,访问SVCexternalIP,数据链路通过veth pair进到ECS OS内后,会命中相应IPVS规则,并根据负载规则,选择IPVS某一个后端,进而打到其中一个SVC后端endpoint,SVCIP 只会再Pod的eth0veth pair vethxxx被捕捉到,其他链路环节不会捕捉到svcIP

 

4) 场景三:ExternalTrafficPolicy为Local时,Client和服务端Pod部署于集群内不同ECS

此场景包含下面几个子场景,数据链路可以归纳为一种:

 

以SVC ExternalIP对外提供服务,ExternalTrafficPolicy为Local情况下,集群内Client和SVC后端Pod部署于不同节点;

环境

image.png 

ap-southeast-1.10.0.0.180节点上存在两个pod:centos-67756b6dc8-rmmxt IP地址172.23.96.23和nginx1-76c99b49df-7plsr IP 地址172.23.96.163

Service nginx1 ExternalTrafficPolicy 为Local

image.png

内核路由

Pod网络空间和ECS OS 网络空间的数据交换在 2.1 场景一中已经做了详细描述,此处不再果断篇幅描述。

源端Pod所在ECS的IPVS规则

可以看到,源端数据链路访问svc的external ip 8.219.164.113 时,如果链路到达ECS的OS内,会命中ipvs规则,但是我们可以看到external ip并没有相关的后端endpoint,链路达到OS后,会命中IPVS规则,但是没有后端pod,所以会出现connection refused

image.png

 

小结

不可以访问到目的端,此时会访问失败,Connection refused

数据链路转发示意图:

image.png

 

内核协议栈示意图

 image.png 

数据链路:ECS1 Pod1 eth0 -> vethxxx1 ->

数据链路要经过一次半内核协议栈,分别是Pod1协议栈,半个ECS1 OS协议栈 

如果访问SVCExternal IP,或者是Local模式下,访问SVCexternalIP,数据链路通过veth pair进到ECS OS内后,会命中相应IPVS规则,但是由于Local模式,External IPIPVS为空,所以命中规则但是无转发后端,整个链路会在ipvs终止,访问失败所以建议集群内采用clusterip访问,这也是k8s官方推荐最佳实践


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

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

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8月前
|
JavaScript
Vue中Axios网络请求封装-企业最常用封装模式
本教程介绍如何安装并配置 Axios 实例,包含请求与响应拦截器,实现自动携带 Token、错误提示及登录状态管理,适用于 Vue 项目。
312 1
|
10月前
基于Reactor模式的高性能网络库github地址
https://github.com/zyi30/reactor-net.git
217 0
|
8月前
|
安全 测试技术 虚拟化
VMware-三种网络模式原理
本文介绍了虚拟机三种常见网络模式(桥接模式、NAT模式、仅主机模式)的工作原理与适用场景。桥接模式让虚拟机如同独立设备接入局域网;NAT模式共享主机IP,适合大多数WiFi环境;仅主机模式则构建封闭的内部网络,适用于测试环境。内容简明易懂,便于理解不同模式的优缺点与应用场景。
1104 0
|
10月前
|
缓存 索引
基于Reactor模式的高性能网络库之缓冲区Buffer组件
Buffer 类用于处理 Socket I/O 缓存,负责数据读取、写入及内存管理。通过预分配空间和索引优化,减少内存拷贝与系统调用,提高网络通信效率,适用于 Reactor 模型中的异步非阻塞 IO 处理。
310 3
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
570 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
9月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
本文内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
743 15
|
9月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
|
运维 Cloud Native 测试技术
极氪汽车云原生架构落地实践
随着极氪数字业务的飞速发展,背后的 IT 技术也在不断更新迭代。极氪极为重视客户对服务的体验,并将系统稳定性、业务功能的迭代效率、问题的快速定位和解决视为构建核心竞争力的基石。
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
616 59
|
7月前
|
人工智能 Kubernetes Cloud Native
Higress(云原生AI网关) 架构学习指南
Higress 架构学习指南 🚀写在前面: 嘿,欢迎你来到 Higress 的学习之旅!
2513 0

热门文章

最新文章