tencent cloud

容器服务

动态与公告
产品动态
公告
产品发布记录
产品简介
产品概述
产品优势
产品架构
应用场景
产品功能
基本概念
原生 Kubernetes 名词对照
容器服务高危操作
地域和可用区
开源组件
购买指南
购买指引
购买 TKE 标准集群
购买原生节点
购买超级节点
快速入门
新手指引
快速创建一个标准集群
入门示例
容器应用部署 Check List
集群配置
标准集群概述
集群管理
网络管理
存储管理
节点管理
GPU 资源管理
远程终端
应用配置
工作负载管理
服务和配置管理
组件和应用管理
弹性伸缩
容器登录方式
可观测配置
运维可观测性
成本洞察和优化
调度配置
调度组件概述
资源利用率优化调度
业务优先级保障调度
Qos 感知调度
安全和稳定性
容器服务安全组设置
身份验证和授权
应用安全
多集群管理
计划升级
备份中心
云原生服务指南
云原生 etcd
Prometheus 监控服务
TKE Serverless 集群指南
TKE 注册集群指南
实践教程
集群
Serverless 集群
调度
安全
服务部署
网络
发布
日志
监控
运维
Terraform
DevOps
弹性伸缩
容器化
微服务
成本管理
混合云
AI
故障处理
节点磁盘爆满排障处理
节点高负载排障处理
节点内存碎片化排障处理
集群 DNS 解析异常排障处理
集群 Kube-Proxy 异常排障处理
集群 API Server 网络无法访问排障处理
Service&Ingress 网络无法访问排障处理
Service&Ingress 常见报错和处理
Nginx Ingress 偶现 Connection Refused
CLB Ingress 创建报错排障处理
Pod 网络无法访问排查处理
Pod 状态异常与处理措施
授权腾讯云售后运维排障
CLB 回环问题
API 文档
History
Introduction
API Category
Making API Requests
Elastic Cluster APIs
Resource Reserved Coupon APIs
Cluster APIs
Third-party Node APIs
Relevant APIs for Addon
Network APIs
Node APIs
Node Pool APIs
TKE Edge Cluster APIs
Cloud Native Monitoring APIs
Scaling group APIs
Super Node APIs
Other APIs
Data Types
Error Codes
TKE API 2022-05-01
常见问题
TKE 标准集群
TKE Serverless 集群
运维类
隐患处理
服务类
镜像仓库类
远程终端类
事件类
资源管理类
服务协议
TKE Service Level Agreement
TKE Serverless Service Level Agreement
联系我们
词汇表

多 Pod 共享网卡模式

PDF
聚焦模式
字号
最后更新时间: 2024-12-19 21:02:04

使用原理

VPC-CNI 多 Pod 共享网卡模式使用原理图如下所示:


集群网络是用户的 VPC,节点和容器子网属于该 VPC。
容器子网可以选择多个 VPC 内的子网。
可设置是否开启固定 IP。您可参考 固定 IP 模式使用说明

IP 地址管理原理

非固定 IP 模式




TKE 组件在每个节点维护一个可弹性伸缩的 IP 池。已绑定的 IP 数量将被维持在 Pod 数量 + 最小预绑定数量Pod 数量 + 最大预绑定数量之间:
已绑定数量 < Pod 数量 + 最小预绑定数量时,会绑定 IP 使得已绑定数量 = Pod 数量 + 最小预绑定数量
已绑定数量 > Pod 数量 + 最大预绑定数量时,会定时释放IP(约2分钟一次),直到已绑定数量 = Pod 数量 + 最大预绑定数量
最大可绑定数量 < 当前已绑定数量时,会直接释放多余的空闲 IP,使得已绑定数量 = 最大可绑定数量
共享网卡的 Pod 创建时,从节点可用 IP 池中随机分配一个可用 IP。
共享网卡的 Pod 销毁时,IP 释放回节点的 IP 池,留给下一个 Pod 使用,不会在 VPC 侧释放(删除)。
IP 和网卡的分配和释放目前基于最少网卡原则,即保证使用的弹性网卡尽量的少:
IP 分配给 Pod:优先分配已分配 IP 数量最多的网卡上的 IP。
IP 释放:优先释放已分配 IP 数量最少的网卡上的 IP。
新网卡绑定:若当前已绑定网卡 IP 配额用尽或网卡所在的子网 IP 用完,则申请新网卡绑定 IP。
网卡释放:若已绑定网卡的辅助 IP 都已解绑,且不再需要新增 IP,则解绑并删除网卡。
节点会注册扩展资源 tke.cloud.tencent.com/eni-ip,资源的可分配数(Allocatable) 为实际的已绑定 IP 资源数,总量(Capacity) 为节点可绑定的 IP 资源上限。因此,当 Pod 调度到某节点失败时,说明节点的 IP 已用尽。
新网卡的子网选择:新网卡优先选择可用 ip 最多的子网。
各节点最大可绑定 IP = 最大绑定网卡数 * 单网卡可绑定 IP 数。
当前最小预绑定数量最大预绑定数量的默认值为5。

固定 IP 模式

TKE 网络组件维护一个集群维度的可用 IP 池。
集群每新增一个节点,不会提前绑定任何辅助 IP 和弹性网卡,IP 完全按需分配
新建一个使用 VPC-CNI 模式的 Pod 时,IPAMD 组件会在其所在节点寻找一张可用网卡分配 IP,网卡分配原则基于最少网卡,即优先分配已绑定 IP 数量最多的网卡。
若已绑定网卡都已绑满 IP,则尝试新建绑定网卡再分配 IP,网卡所在子网优先选择可用 IP 最多的子网。
没有设置固定 IP 注解的 Pod 销毁时,IP 地址回归集群的可用 IP 池,并触发网卡解绑 IP,IP 地址将释放回 VPC 子网内。
固定 IP 的 Pod 的 IP 销毁后会在 VPC 内保留,保证下一次创建同名 Pod 的时候仍使用这个 IP。
节点删除时,将释放网卡占用的 IP 资源。
多容器子网的情况下,网卡优先分配到可用 IP 数量最多的子网内,若没有完全满足需求的子网,则节点绑定网卡失败。

多网卡数据面原理

当节点绑定了多张网卡时,Pod 发出的网络包遵循策略路由转发到对应的网卡上:
在节点上执行 ip link 可看到节点所有的网络设备信息,通过弹性网卡的 mac 地址比对,可知道其中弹性网卡对应的网络设备。一般情况下,eth0为主网卡,eth1eth2等为辅助弹性网卡:



在节点上执行 ip rule 可看到策略路由表的信息,TKE 网络组件通过弹性网卡的 <link index>+2000 得到路由表号,绑定了对应网卡 IP 的 Pod 网络包都将转发到该路由表,如此例中,eth1 对应的路由表即为 2003,eth2 对应的路由表即为 2010:



对应的路由表则设置了到对应网卡的默认路由,节点上执行 ip route show table <id> 可查看:



而欲发送给 Pod 的网络包到达节点时,同样遵循策略路由,直接通过主路由表发送给 Pod 的 Veth 网卡。

使用方法

使用 VPC-CNI 需要确保 rp_filter 处于关闭状态。可参考以下代码示例:
sysctl -w net.ipv4.conf.all.rp_filter=0
# 假设 eth0 为主网卡
sysctl -w net.ipv4.conf.eth0.rp_filter=0
注意:
tke-eni-agent 组件自动设置节点的内核参数。若您自己有维护内核参数且打开 rpfilter,则会导致网络不通。

开启 VPC-CNI

创建集群时开启 VPC-CNI

1. 登录 容器服务控制台 ,单击左侧导航栏中集群
2. 集群管理页面,单击集群列表上方的新建
3. 创建集群页面,在容器网络插件中选择 VPC-CNI。如下图所示:



说明:
默认情况下,VPC-CNI 模式不支持固定 Pod IP 能力,且该能力仅支持在 创建集群 时设置。如需为集群开启支持固定 Pod IP,请参见 固定 IP 模式使用说明

为已有集群开启 VPC-CNI

创建集群时选择 Global Router 网络插件,后续在集群基本信息页面开启 VPC-CNI 模式(两种默认混用)。
1. 登录 容器服务控制台 ,单击左侧导航栏中集群
2. 集群管理页面,选择集群 ID,进入集群的基本信息页面。
3. 在集群详情页面,选择左侧基本信息
4. 在集群基本信息页面的集群信息模块,在 VPC-CNI 字段中单击开启。
5. 在弹出窗口中选择是否支持固定 IP,并选择子网。如下图所示:



注意:
针对固定 IP 场景,启用 VPC-CNI 后需要设置 IP 回收策略,即设置 Pod 销毁后需要退还 IP 的时长。
非固定 IP 的 Pod 销毁后可立即释放 IP(非释放回 VPC,释放回容器管理的 IP 池),不受此设置的影响。
6. 单击提交,即可完成为已有集群开启 VPC-CNI。

关闭 VPC-CNI

1. 登录 容器服务控制台 ,单击左侧导航栏中集群
2. 集群管理页面,选择需开启 VPC-CNI 的集群 ID,进入集群详情页。
3. 在集群详情页面,选择左侧基本信息
4. 在集群基本信息页面的集群信息模块,在 VPC-CNI 字段中单击关闭。
5. 在弹出窗口中选择提交,即可关闭 VPC-CNI。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈