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

本文涉及的产品
云服务器ECS,u1 2核4GB 1个月
云服务器 ECS,u1 4核8GB 1个月
云服务器 ECS,u1 4核16GB 1个月
简介: 《云原生网络数据面可观测性最佳实践》——二、全景剖析阿里云容器网络数据链路——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

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
Kubernetes Cloud Native 开发者
阿里云网络发布 alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!
**阿里云发布开源版ALB控制器v1.2.0,对齐商业版ALB Ingress Controller v2.10.0。新版本增强了功能特性,提升了用户体验,并提供了最佳实践。功能更新包括自定义标签、QUIC协议支持、转发规则和安全策略等。此外,还引入了ReadinessGate实现滚动升级时的平滑上线和Prestop钩子确保平滑下线。用户可从GitHub获取开源代码,通过Docker Hub拉取镜像,开始使用alibaba-load-balancer-controller v1.2.0。**
68 3
阿里云网络发布 alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!
|
2天前
|
机器学习/深度学习 计算机视觉 网络架构
是VGG网络的主要特点和架构描述
是VGG网络的主要特点和架构描述:
10 1
|
25天前
|
运维 安全 网络架构
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
【6月更文挑战第1天】成为网络世界的超级英雄,利用网络模拟工具解决复杂架构难题!此工具提供安全的虚拟环境,允许自由设计和测试网络拓扑,进行性能挑战和压力测试。简单示例代码展示了创建网络拓扑的便捷性,它是网络设计和故障排查的“魔法棒”。无论新手还是专家,都能借助它探索网络的无限可能,开启精彩冒险!快行动起来,你会发现网络世界前所未有的乐趣!
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
深度揭秘:深度学习框架下的神经网络架构进化
从感知机到深度学习的革命,神经网络经历了从简单到复杂的演变。反向传播使多层网络实用化,深度信念网络(DBN)和卷积神经网络(CNN)的兴起,尤其是AlexNet在ImageNet竞赛中的胜利,开启了深度学习黄金时代。ResNet的残差学习解决了深度梯度消失问题。循环神经网络(RNN)、LSTM和GRU改进了序列处理,Transformer模型(如BERT和GPT)引领了自然语言处理的变革。超大规模模型如GPT-3和通义千问展示惊人能力,影响医疗、自动驾驶等多个领域。未来,平衡模型复杂度、计算成本与应用需求将是关键。
49 2
|
5天前
|
Kubernetes Cloud Native 开发者
阿里云网络发布云原生网关 alibaba-load-balancer-controller v1.2.0,持续拥抱开源生态
alibaba-load-balancer-controller开源版本正式推出v1.2.0,能力对齐ALB Ingress Controller商业版v2.10.0。
|
8天前
|
机器学习/深度学习 网络架构 计算机视觉
VGG深度卷积神经网络架构
VGG深度卷积神经网络架构
|
20天前
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
|
1月前
|
弹性计算 安全 微服务
【阿里云云原生专栏】容器网络技术前沿:阿里云Terway网络方案详解
【5月更文挑战第26天】阿里云Terway是高性能的容器网络方案,基于ECS的ENI实现,提供低延迟高吞吐的网络服务。它简化网络管理,实现安全隔离,并与阿里云服务无缝集成。Terway由CNI、Node和Controller组成,适用于微服务、混合云和多租户环境,为企业数字化转型中的复杂网络需求提供强大支持。
189 1
|
1月前
|
安全 网络协议 网络安全
网络安全笔记整理,你花了多久弄明白架构设计
网络安全笔记整理,你花了多久弄明白架构设计
|
1月前
|
Kubernetes Ubuntu Docker
清除flannel网络
清除flannel网络
85 0

热门文章

最新文章