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

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

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
运维 Kubernetes Cloud Native
构建高效云原生运维体系:Kubernetes最佳实践
【5月更文挑战第9天】 在动态和快速演变的云计算环境中,高效的运维是确保应用稳定性与性能的关键。本文将深入探讨在Kubernetes环境下,如何通过一系列最佳实践来构建一个高效且响应灵敏的云原生运维体系。文章不仅涵盖了容器化技术的选择与优化、自动化部署、持续集成/持续交付(CI/CD)流程的整合,还讨论了监控、日志管理以及灾难恢复策略的重要性。这些实践旨在帮助运维团队有效应对微服务架构下的复杂性,确保系统可靠性及业务的连续性。
|
6天前
|
运维 监控 安全
|
4天前
|
XML 前端开发 JavaScript
《浅谈架构之路:前后端分离模式》,面试篇2015校园招聘求职大礼包
《浅谈架构之路:前后端分离模式》,面试篇2015校园招聘求职大礼包
|
4天前
|
前端开发 JavaScript Java
《浅谈架构之路:前后端分离模式》 - 山人行 - 博客园,前端开发新手项目
《浅谈架构之路:前后端分离模式》 - 山人行 - 博客园,前端开发新手项目
|
4天前
|
安全 网络协议 网络安全
网络安全笔记整理,你花了多久弄明白架构设计
网络安全笔记整理,你花了多久弄明白架构设计
|
5天前
|
监控 Java 网络性能优化
容器内存可观测性新视角:WorkingSet 与 PageCache 监控
本文介绍了 Kubernetes 中的容器工作内存(WorkingSet)概念,它用于表示容器内存的实时使用量,尤其是活跃内存。
331 12
容器内存可观测性新视角:WorkingSet 与 PageCache 监控
|
6天前
|
网络协议 安全 数据挖掘
LabVIEWCompactRIO 开发指南12 LabVIEWCompactRIO 开发指南12 第四章网络通信的最佳实践
LabVIEWCompactRIO 开发指南12 LabVIEWCompactRIO 开发指南12 第四章网络通信的最佳实践
11 2
|
6天前
|
机器学习/深度学习 安全 网络安全
数字堡垒的构筑者:网络安全与信息安全的深层剖析构建高效微服务架构:后端开发的新趋势
【4月更文挑战第30天】在信息技术高速发展的今天,构建坚不可摧的数字堡垒已成为个人、企业乃至国家安全的重要组成部分。本文深入探讨网络安全漏洞的本质、加密技术的进展以及提升安全意识的必要性,旨在为读者提供全面的网络安全与信息安全知识框架。通过对网络攻防技术的解析和案例研究,我们揭示了防御策略的关键点,并强调了持续教育在塑造安全文化中的作用。
|
6天前
|
消息中间件 监控 微服务
【专栏】随着技术发展,未来将探索服务网格、容器化和云原生技术,以提升微服务架构的效能
【4月更文挑战第27天】本文探讨了构建高效微服务架构的后端开发最佳实践。微服务以服务独立、去中心化、自治和轻量级通信为核心原则,带来可扩展性、独立性、技术灵活性和团队协作优势。实践中,要注意服务拆分粒度、选择合适的通信协议(如RESTful、RPC、消息队列)、处理数据一致性与分布式事务、实施服务治理和监控,以及确保安全性与权限控制。随着技术发展,未来将探索服务网格、容器化和云原生技术,以提升微服务架构的效能。