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

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

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

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


4) 场景三:同节点不同安全组TrunkPod互访(含访问SVC IP,源端和svc后端部署在同一节点)

环境

image.png

 cn-hongkong.10.0.4.244节点上存在 nginx-96bb9b7bb-wwrdm,10.0.5.35和centos-648f9999bc-nxb6l,10.0.5.18。

内核路由

相关的Pod的容器网络命名空间,路由等不在进行过多描述,详情可以见前面两小节。

通过podeni可以看到centos-648f9999bc-nxb6l 所分配的ENI,安全组sg,交换机vsw等image.png

 

通过安全组sg-j6ccrxxxx可以看到centos的pod可以访问外部所有的地址

image.png

 

同理,可以查看出服务端Pod的nginx-96bb9b7bb-wwrdm的安全组 sg-j6ccrze8utxxxxx 是只允许192.168.0.0/16 可以访问

image.png

image.png

小结

可以访问到目

数据链路转发示意图:

 image.png

 

会经过calicao网卡,每个非hostnetworkpod会和calicao网卡形成veth pair,用于和其他pod或node进行通信

整个链路不会和请求不会经过pod所分配ENI,直接在OSns中命中Ip rule 被转发

整个请求链路是ECS1 Pod1 eth0 -> cali1xxxxxx-> cali2xxxxxx ->ECS1 Pod2 eth0

pod属于同or不同ENI,链路请求是一致,不经过ENI

因为是通过os内核 routing 转发,不经过 member eni,所以安全组不生效,此链路与pod所属member eni安全组无关

访问Pod IP访问 SVC IP(external ipor clusterip)区别是:访问SVC IPSVC 会在源端pod eth0和calixxx网卡捕捉到,在目端podeth0和calixxx时捕捉不到

 

5) 场景四:不同节点同安全组TrunkPod互访

环境

image.png

 

cn-hongkong.10.0.4.20节点上存在客户端 centos-59cdc5c9c4-l5vf9和IP 10.0.4.27

cn-hongkong.10.0.4.22节点上存在服务端 nginx-6f545cb57c-kt7r8和IP 10.0.4.30

内核路由

相关的Pod的容器网络命名空间,路由等不在进行过多描述,详情可以见前面两小节。

通过podeni可以看到centos-59cdc5c9c4-l5vf9 所分配的ENI,安全组sg,交换机vsw等

通过安全组sg-j6cf3sxrlbuwxxxxx可以看到centos和nginx的pod属于同一个安全组 sg-j6cf3sxrlbuxxxxx。

 image.png

image.png

 

小结

是否可以访问取决于安全组配置

数据链路转发示意图:

image.png

 

会经过calicao网卡,每个非hostnetworkpod会和calicao网卡形成veth pair,用于和其他pod或node进行通信

整个链路不会和请求不会经过pod所分配ENI,直接在OSns中命中Ip rule 被转发

出ECS后,根据要访问pod和该pod ENI所属vswitch,命中VPC路由规则或者直接VSW上二层转发;

整个请求链路是ECS1 Pod1 eth0 -> cali1xxx > Trunk eni (ECS1) ->Pod1 member eni -> vpc route rule(如有) ->Pod2 member eni -> > Trunk eni (ECS2) cali2 xxx->ECS2 Pod1 eth0

因为是通过os内核 routing 转发,经过 member eni,因为member eni属于同一个安全组,所以安全组内默认是互通

6) 场景五:不同节点不同安全组TrunkPod互访

环境

image.png

cn-hongkong.10.0.4.20节点上存在客户端 centos-59cdc5c9c4-l5vf9和IP 10.0.4.27

cn-hongkong.10.0.4.244 节点上存在服务端 nginx-96bb9b7bb-wwrdm和IP 10.0.5.35

内核路由

相关的Pod的容器网络命名空间,路由等不在进行过多描述,详情可以见前面两小节。

通过podeni可以看到centos-59cdc5c9c4-l5vf9 所分配的ENI,安全组sg,交换机vsw等。

通过安全组sg-j6cf3sxrlbuwxxxxx可以看到centos的pod可以访问外部所有的地址

 image.png

 

同理,可以查看出服务端Pod的nginx-96bb9b7bb-wwrdm的安全组 sg-j6ccrze8utxxxxx 是只允许192.168.0.0/16 可以访问

image.png

image.png


小结

是否可以访问取决于安全组配置

数据链路转发示意图:

 image.png

 

会经过calicao网卡,每个非hostnetworkpod会和calicao网卡形成veth pair,用于和其他pod或node进行通信

整个链路不会和请求不会经过pod所分配ENI,直接在OSns中命中Ip rule 被转发

整个请求链路是ECS1 Pod1 eth0 -> cali1xxx > Trunk eni (ECS1) ->Pod1 member eni -> vpc route rule(如有) ->Pod2 member eni -> > Trunk eni (ECS2) cali2 xxx->ECS2 Pod1 eth0

因为是通过os内核routing转发,流量会经过member eni是否可以访问成功,安全组配置对此有着决定性作用

7) 场景六:集群内源端访问SVC IP(源端和SVC后端不同节点,相同安全组,含Local模式访问external IP)

环境

 image.png

image.png

 

cn-hongkong.10.0.4.20节点上存在客户端 centos-59cdc5c9c4-l5vf9和IP 10.0.4.27

cn-hongkong.10.0.4.22节点上存在服务端 nginx-6f545cb57c-kt7r8和IP 10.0.4.30

nginx的svc的ClusterIP是192.168.81.92 External IP是8.210.162.178

内核路由

ENI-Trunking相比较ENIIP来说,只是在VPC侧增加了对应的Truning和Member ENI,在OS内并无区别,此处可以参考《Terway ENIIP模式架构群内非SVC后端pod所在节点访问SVC ClusterIP


小结

是否可以访问取决于安全组配置

数据链路转发示意图:

image.png

 

会经过calicao网卡,每个非hostnetworkpod会和calicao网卡形成veth pair,用于和其他pod或node进行通信

整个链路不会和请求不会经过pod所分配ENI,直接在OSns中命中Ip rule 被转发

出ECS后,根据要访问pod和该pod ENI所属vswitch,命中VPC路由规则或者直接VSW上二层转发;

整个请求链路是

去方向:ECS1 Pod1 eth0 -> cali1xxx >ECS eth0 ->Pod1 member eni -> vpc route rule(如有) ->Pod2 member eni -> Trunk eni (ECS2) cali2 xxx->ECS2 Pod1 eth0

回方向:ECS2 Pod1 eth0 -> Trunk eni (ECS2) cali2 xxx ->Pod2 member eni -> vpc route rule(如有) ->Pod1 member eni -> Trunk eni (ECS1) -> cali1xxx ->ECS1 Pod1 eth0

经过ipvs规则fnat转化数据包是以源pod IP 从ECS eth0 出,请求目pod IP(访问SVC clusterIP,以及Local模式下访问External IP)

这个经过ENI有ECS1的eth0,Pod1 member eni,Pod2 member eni所以这三个网卡安全组配置都会影响数据链路连通性

 

8) 场景七:集群内源端访问SVC IP(源端和SVC后端不同节点,不同安全组,含Local模式访问external IP)

环境

image.png

image.png

 

cn-hongkong.10.0.4.20节点上存在客户端 centos-59cdc5c9c4-l5vf9和IP 10.0.4.27

cn-hongkong.10.0.4.244节点上存在服务端 nginx-96bb9b7bb-wwrdm和IP 10.0.5.35

nginx的svc的ClusterIP是192.168.31.83 External IP是47.243.87.204

内核路由

ENI-Trunking相比较ENIIP来说,只是在VPC侧增加了对应的Truning和Member ENI,在OS内并无区别,此处可以参考《Terway ENIIP模式架构Cluster模式,集群内非SVC后端pod所在节点访问SVC External IP

小结

是否可以访问取决于安全组配置

数据链路转发示意图:image.png

会经过calicao网卡,每个非hostnetworkpod会和calicao网卡形成veth pair,用于和其他pod或node进行通信

整个链路不会和请求不会经过pod所分配ENI,直接在OSns中命中Ip rule 被转发

出ECS后,根据要访问pod和该pod ENI所属vswitch,命中VPC路由规则或者直接VSW上二层转发;

整个请求链路是

去方向:ECS1 Pod1 eth0 -> cali1xxx >ECS eth0 ->Pod1 member eni -> vpc route rule(如有) ->Pod2 member eni -> Trunk eni (ECS2) cali2 xxx->ECS2 Pod1 eth0

回方向:ECS2 Pod1 eth0 -> Trunk eni (ECS2) cali2 xxx ->Pod2 member eni -> vpc route rule(如有) ->Pod1 member eni -> Trunk eni (ECS1) -> cali1xxx ->ECS1 Pod1 eth0

经过ipvs规则fnat转化数据包是以源pod IP 从ECS eth0 出,请求目pod IP(访问SVC clusterIP,以及Local模式下访问External IP)

这个经过ENI有ECS1的eth0,Pod1 member eni,Pod2 member eni所以这三个网卡安全组配置都会影响数据链路连通性需要保证安全组互相放通Pod和ECS响应IP

 

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

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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
26天前
|
人工智能 云计算 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日~10日在江苏张家港召开的CCF ChinaNet(即中国网络大会)上,众多院士、教授和业界技术领袖齐聚一堂,畅谈网络未来的发展方向,聚焦智算集群网络的创新变革。
阿里云引领智算集群网络架构的新一轮变革
|
26天前
|
人工智能 运维 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日至10日,CCF ChinaNet(中国网络大会)在江苏张家港召开,众多院士、教授和技术领袖共聚一堂,探讨网络未来发展方向。阿里云研发副总裁蔡德忠发表主题演讲,展望智算技术发展趋势,提出智算网络架构变革的新思路,发布高通量以太网协议和ENode+超节点系统规划,引起广泛关注。阿里云HPN7.0引领智算以太网生态蓬勃发展,成为业界标杆。未来,X10规模的智算集群将面临新的挑战,Ethernet将成为主流方案,推动Scale up与Scale out的融合架构,提升整体系统性能。
|
2月前
|
弹性计算 Kubernetes 网络协议
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
|
2月前
|
缓存 监控 测试技术
掌握容器化持续集成/持续部署(CI/CD)的最佳实践
【10月更文挑战第8天】本文介绍了容器化持续集成/持续部署(CI/CD)的最佳实践,涵盖容器化CI/CD的概念、优势和实施步骤。通过使用容器技术,可以实现环境一致性、快速迭代和易于扩展,提高软件开发的效率和可靠性。文章还详细讨论了编写高效的Dockerfile、自动化测试、安全性、监控和日志管理等方面的最佳实践。
|
2月前
|
Docker 容器
docker中检查容器的网络模式
【10月更文挑战第5天】
174 1
|
2月前
|
监控 Kubernetes 测试技术
掌握Docker网络模式:构建高效容器通信
【10月更文挑战第3天】本文深入探讨了Docker的网络模式,包括它们的工作原理、使用场景以及如何配置和优化容器间的通信。希望能够帮助开发者在项目中有效地应用Docker网络模式,构建高效的容器化应用。
|
3月前
|
缓存 Kubernetes Java
阿里云 SAE Web:百毫秒高弹性的实时事件中心的架构和挑战
SAE 事件中心通过智能诊断显示通知与用户连接起来,SAE WEB 百毫秒弹性实例给事件中心带来了新的实时性、海量数据和高吞吐的挑战,本篇将带您了解 SAE 整体事件中心的架构和挑战。
170 10
|
3月前
|
网络协议 安全 开发者
掌握 Docker 网络:构建复杂的容器通信
在 Docker 容器化环境中,容器间的通信至关重要。本文详细介绍了 Docker 网络的基础知识,包括网络驱动、端口映射和命名等核心概念,并深入探讨了 Bridge、Host、Overlay 和 Macvlan 四种网络类型的特点及应用场景。此外,还提供了创建、连接、查看和删除自定义网络的命令示例,以及高级网络配置方法,如网络命名空间、DNS 解析和安全通信配置,帮助开发者构建更健壮的容器化应用。
|
3月前
|
Shell Docker 容器
10-19|使用date命令: 你可以在容器内使用date命令来设置时间,但为了防止这个更改影响宿主机,你不能以特权模式运行容器。我没有加特权模式的时候,使用此命令告诉我没权限啊
10-19|使用date命令: 你可以在容器内使用date命令来设置时间,但为了防止这个更改影响宿主机,你不能以特权模式运行容器。我没有加特权模式的时候,使用此命令告诉我没权限啊