【理解云容器网络】6-CCE Turbo集群容器网络走线介绍

举报
可以交个朋友 发表于 2024/03/27 09:36:07 2024/03/27
【摘要】 主要介绍CCE Turbo集群容器各种访问场景的网络走线

背景

鉴于在CCE Turbo集群使用云原生2.0网络模型,处理遇到的一些网络问题时,需要熟悉不同场景下数据包的流转过程,才能快速的解决问题。本文主要介绍CCE Turbo集群云原生2.0网络模式下各种访问场景介绍。

云原生2.0网络模型不同访问场景走线

云原生网络2.0是自研的新一代容器网络模型,深度整合了虚拟私有云VPC的弹性网卡(Elastic Network Interface,简称ENI)和辅助弹性网卡(Sub Network Interface,简称Sub-ENI)的能力,直接从VPC网段内分配容器IP地址,支持ELB直通容器,绑定安全组,绑定弹性公网IP,享有高性能。

同节点容器互访

image.png
容器ip由VPC分配,数据包转发也由VPC接管,所以同节点容器互访数据包需要出节点。同时因为容器数据包经过VPC,所以云原生2.0网络支持容器绑定安全组

跨节点容器互访

image.png
与同节点容器互访类似

容器访问ClusterIP

image.png

  1. 容器内访问service需要借助veth1网卡,数据包才能进入节点网络命名空间。利用kube-proxy在节点上写入的转发规则实现DNAT能力
  2. 数据包进入节点iptables规则mangle表的PREROUTING链,YNAGTSE-ENI-MARK为自定义链,主要负责给数据包打标机,不同的veth_XXX虚拟网卡打上不同标记,做路由策略时根据标记将数据包送回给对应虚拟网卡
  3. 数据包进入节点iptables规则nat表的PREROUTING链,为数据包打上0x4000标记,同时利用DNAT规则将ClusterIP转换成PodIP。数据包出PREROUTING链后根据0x3f10000/0xffff0000标记匹配1009路由表的默认路由,数据包的出口网卡为veth_4b2df927,数据包经过路由后进入节点iptables规则nat表的POSTROUTING链,根据0x4000标记做SNAT,数据包源ip变为veth_4b2df927网卡地址169.254.1.1。
  4. 数据包进入容器后根据路由从eth0网卡转出,此时数据包进入容器内的POSTROUTING链,将数据包的源地址从169.254.1.1变为172.16.1.106

节点访问容器

image.png
由于节点与容器在不同子网,需要借助路由器,此时node1发出的数据包目标mac地址为路由器接口地址(节点子网网关),node2收到的数据包源mac地址为路由器另一个接口地址(容器子网网关)

容器访问华为云服务

image.png
ECS服务器访问华为云服务(100.64.0.0/10)地址依赖eth0网卡上绑定的floatingIP,所以容器访问华为云服务器需要借助veth1从节点eth0出包

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。