【理解云容器网络】6-CCE Turbo集群容器网络走线介绍
【摘要】 主要介绍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,享有高性能。
同节点容器互访
容器ip由VPC分配,数据包转发也由VPC接管,所以同节点容器互访数据包需要出节点。同时因为容器数据包经过VPC,所以云原生2.0网络支持容器绑定安全组
跨节点容器互访
与同节点容器互访类似
容器访问ClusterIP
- 容器内访问service需要借助veth1网卡,数据包才能进入节点网络命名空间。利用kube-proxy在节点上写入的转发规则实现DNAT能力
- 数据包进入节点iptables规则mangle表的PREROUTING链,YNAGTSE-ENI-MARK为自定义链,主要负责给数据包打标机,不同的veth_XXX虚拟网卡打上不同标记,做路由策略时根据标记将数据包送回给对应虚拟网卡
- 数据包进入节点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。
- 数据包进入容器后根据路由从eth0网卡转出,此时数据包进入容器内的POSTROUTING链,将数据包的源地址从169.254.1.1变为172.16.1.106
节点访问容器
由于节点与容器在不同子网,需要借助路由器,此时node1发出的数据包目标mac地址为路由器接口地址(节点子网网关),node2收到的数据包源mac地址为路由器另一个接口地址(容器子网网关)
容器访问华为云服务
ECS服务器访问华为云服务(100.64.0.0/10)地址依赖eth0网卡上绑定的floatingIP,所以容器访问华为云服务器需要借助veth1从节点eth0出包
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)