《云原生网络数据面可观测性最佳实践》——二、全景剖析阿里云容器网络数据链路——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
相关文章
|
3天前
|
供应链 安全 Cloud Native
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
阿里云飞天企业版容器系列产品获中国信息通信研究院【可信云·容器平台安全能力】先进级认证,这是飞天企业版容器产品获得《等保四级PaaS平台》和《 云原生安全配置基线规范V2.0》之后,本年度再一次获得行业权威认可,证明飞天企业版的容器解决方案具备符合行业标准的最高等级容器安全能力。
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
|
6天前
|
人工智能 运维 Kubernetes
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。
|
14天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
79 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
25天前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
|
11天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
3天前
|
监控 安全 Cloud Native
阿里云容器服务&云安全中心团队荣获信通院“云原生安全标杆案例”奖
2024年12月24日,阿里云容器服务团队与云安全中心团队获得中国信息通信研究院「云原生安全标杆案例」奖。
|
5天前
|
存储 人工智能 调度
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
|
27天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
190 77
|
1月前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
8天前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈

热门文章

最新文章