随着容器技术的发展成熟,越来越多的组件迁移到容器,在技术迁移过程中,数据库,游戏,AI 这些组件对容器网络性能(时延,吞吐,稳定性)提出了更高的要求。为了得到更优的时延和吞吐表现,各大云厂商都在致力于缩短节点内容器的网络访问链路,让数据包能尽可能快地转发到容器网卡。

腾讯云容器服务 TKE 借助智能网卡推出下一代容器网络方案,该方案实现了一个 Pod 独占一张弹性网卡,不再经过节点网络协议栈(default namespace),极大缩短了容器访问链路,缩短了访问时延,并使 PPS 可以达到整机上限。该方案实现了短链接场景下 QPS 相比之前容器网络方案(策略路由方案,网桥方案)提升 50%-70%;长链接场景下 QPS 提升 40%-60%。

由于不再经过节点网络协议栈,传统基于 iptables 和 IPVS 的 ClusterIP service 访问方案不能直接适用于该方案。为了实现该方案下 Pod 可以直接访问 ClusterIP service,TKE 推出 share-NS IPVS 方案,使得在容器网络命名空间下也可以访问到节点网络协议栈的 IPVS 规则,同时配合 CLB 直通 Pod,实现了完整意义上的弹性网卡直通。

该方案实现了针对 ClusterIP service 短链接场景下 QPS 相比 iptables 方案提升 40%-60%,IPVS 方案提升 70%-90%;长链接场景下 QPS 相比 iptables 方案提升 30%-50%,IPVS 方案提升 50%-70%。

新一代容器网络方案推出背景

在介绍新一代容器网络方案前,先和大家介绍一下 TKE 现有网络方案,和现有网络方案面临的挑战,以及客户新诉求。

现有网络方案介绍

腾讯云容器服务 TKE 目前提供了两种容器网络模式可供用户选择使用。

GlobalRouter 模式:基于 vpc 实现的全局路由模式, 目前是 TKE 默认网络方案。该模式依托于 vpc 底层路由能力,不需要在节点上配置 vxlan 等 overlay 设备,就可以实现容器网络 和 vpc 网络的互访,并且相比于 calico/flannel 等网络方案,因为没有额外的解封包,性能也会更好。

VPC-CNI 模式: TKE 基于 CNI 和 VPC 弹性网卡实现的容器网络能力,适用于 Pod 固定 IP,CLB 直通 Pod,Pod 直绑 EIP 等场景。该网络模式下,容器与节点分布在同一网络平面,容器 IP 为 IPAMD 组件所分配的弹性网卡 IP。

GlobalRouter 和 VPC-CNI 模式目前已服务 TKE 上万企业用户, 两种网络模式也存在一定使用限制见:如何选择TKE网络模式,随着客户使用场景的丰富, TKE 的客户对容器网络又提出了更高的要求。

客户对 TKE 网络方案的新需求

除了在为腾讯外部 TKE 客户提供容器网络能力之外,腾讯云容器服务 TKE 作为腾讯内部业务云原生的底座,在支持腾讯内部自研业务上云如 QQ、腾讯会议、游戏、CDB、大数据等业务的过程中也收到以下的需求点:

  • 在 VPC-CNI 模式的基础上进一步降低资源损耗,降低网络时延,提高网络吞吐(关键点)
  • 支持 Pod 级别的安全隔离
  • 支持 CLB 直通Pod,不再经过 NodePort 转发,提升转发性能并拥有统一的负载均衡视图

基于以上场景,TKE 团队联合底层腾讯云 VPC 团队、虚拟化团队推出了新一代的独立网卡的 VPC-CNI 方案。

TKE新一代网络方案介绍

TKE 新一代网络方案在原有 VPC-CNI 模式单网卡多 IP 模式的基础上, 进阶为容器直接独享使用弹性网卡,无缝对接腾讯云私有网络产品的全部功能,同时在性能做了极大的提升(详情见下文性能介绍)。

压测数据说明

  • 为了得到不同网络方案下的 QPS,这里控制变量,让不同网络方案的 nginx Pod 运行在同一个节点,使用 wrk 分别压测不同 Pod,并让服务端节点的 cpu 接近100%。



  • 为了得到不同 Service 方案下的 QPS,这里控制变量,让 kube-proxy 和 wrk Pod 运行在同一节点,压测相同后端,并让客户端节点的 cpu 接近100%。



功能简介

新一代 VPC-CNI 模式的网络方案中,能够在原有的网络能力中额外增加

  1. 支持 Pod 绑定 EIP/NAT,不再依赖节点的外网访问能力,无须做 SNAT,可以满足直播、游戏、视频会议等高并发,高带宽外网访问场景
  2. 支持 Pod 绑定安全组,实现 Pod 级别的安全隔离
  3. 支持基于 Pod 名称的固定 IP,Pod 重新调度后仍能保证 IP 不变
  4. 支持 CLB 直通 Pod,不再经过 NodePort 转发,提升转发性能并拥有统一的负载均衡视图
  5. 即将支持黑石 2.0物理服务器(推荐使用, 默认使用智能网卡,网络性能更高)
  6. 即将支持基于 Pod 名称的固定 EIP,满足 Pod 固定外网出口

使用方法

申请新一代容器网络方案内测开通后,创建 TKE 集群时容器网络模式选择 VPC-CNI/Pod 独立网卡模式即可:

实现原理简介

新一代方案在原有 VPC-CNI 模式的基础上扩展,依托于弹性网卡,将绑定到节点的弹性网卡通过 CNI 配置到容器网络命名空间,实现容器直接独享使用弹性网卡。

您可以关注腾讯云原生公众号,后续将会推送 TKE 新一代网络方案实现的技术细节

当前内测阶段使用限制

  1. 仅支持部分 S5 的机型使用该网络模式。
  2. 节点上运行的 Pod 数量限制为节点核数的5倍。
  3. 仅支持新集群,存量 TKE 集群暂不支持变更网络方案。

TKE新一代网络方案内测邀请

我们诚挚邀请您参与腾讯云下一容器独立网卡网络方案产品能力的内测, 您可以通过以下链接提交内测申请:https://cloud.tencent.com/apply/p/85p1zs6x777

【腾讯云原生】云说新品、云研新术、云游新活、云赏资讯,扫码关注同名公众号,及时获取更多干货!!

腾讯云容器服务 TKE 推出新一代零损耗容器网络的更多相关文章

  1. 在腾讯云容器服务 TKE 中利用 HPA 实现业务的弹性伸缩

    在 TKE 上利用 HPA 实现业务的弹性伸缩 概述 Kubernetes Pod 水平自动扩缩(Horizontal Pod Autoscaler,以下简称 HPA)可以基于 CPU 利用率.内存利 ...

  2. 腾讯云容器服务 TKE 拿下新加坡 MTCS 最高级别安全认证

    近日,腾讯云容器服务 TKE 荣获新加坡 MTCS 最高级安全认证,标志着腾讯云 TKE 在为用户提供可靠.易部署.灵活扩展等基础服务上,已经全面满足了新加坡监管机构以及多个行业客户对服务安全的要求. ...

  3. 容器服务 TKE 存储插件与云硬盘 CBS 最佳实践应用

    引言 随着自研上云的深入,越来越多的有状态服务对于在 TKE 集群中使用云上存储能力的需求也越来越强烈. 目前腾讯云容器服务 TKE(Tencent Kubernetes Engine已支持在 TKE ...

  4. asp.net core使用serilog将日志推送到腾讯云日志服务

    为什么是serilog? Serilog是 .NET 中最著名的结构化日志类库. 基于日志事件log events,而不是日志消息log message. 你可以将日志事件格式化为控制台的可读文本或者 ...

  5. JavaWeb-SpringBoot_(下)腾讯云点播服务之视频的显示-demo

    腾讯视频云点播 传送门 项目在腾讯云点播服务之视频的上传(上)[附源码]的基础上添加了两个html页面 此视频  播放传送门 (播放视频GIF会超过10M...) package com.Gary.v ...

  6. JavaWeb-SpringBoot_(上)腾讯云点播服务之视频的上传-demo

    使用Gradle编译项目 传送门 腾讯视频云点播 传送门 项目已托管到Github上 传送门 腾讯云点播服务之视频的显示(下) 传送门 个人腾讯云控制台中的视频管理 IndexController.j ...

  7. 腾讯云OCR服务二次开发

    本文记录了对腾讯云OCR服务二次开发的代码和开发过程中遇到的问题.

  8. 腾讯云游戏服务平台CMatrix品牌全新升级为GameMatrix

    近日,隶属腾讯互娱公共研发运营体系(下文称CROS)下的云游戏服务平台CMatrix宣布进行品牌升级,启用全新商标Tencent GameMatrix,将原先代表云服务的“C”替换成游戏的英文单词“G ...

  9. 容器服务 TKE 上服务暴露的几种方式

    预备知识 1. K8S 上 Service 类型 ClusterIP 通过集群的内部 IP 暴露服务,选择该值,服务只能够在集群内部可以访问,这也是默认的 ServiceType. NodePort ...

随机推荐

  1. go mod 使用bee工具

    https://github.com/beego/bee/releases bee  windows https://github.com/beego/bee/releases/download/v1 ...

  2. 【事件中心 Azure Event Hub】Event Hub Java SDK的消费端出现不消费某一个分区中数据的情况,出现IdleTimerExpired错误消息记录

    问题情形 使用Java SDK编写的Event Hub消费端应用,随机性遇见了某个分区没有消费消息的情况,在检查日志时候,有发现IdelTimeExpired的错误记录.在重启应用后,连接EventH ...

  3. NLP任务梳理总结

    NLP任务 前处理任务 前处理任务的结果可作为下游任务输入的额外特征. POSTa(词性标注) 往模型中输入句子,对每一个token进行词性的识别. 识别出的词性可以用于下游任务. Word Segm ...

  4. nrm切换npm源

    使用 nrm 提供了一些最常用的npm包镜像地址,能够让我们快速的切换安装包时候的服务器地址: 全局安装nrm包 npm i nrm -g 查看当前所有可用的镜像源地址以及当前所使用的镜像源地址 nr ...

  5. 【CF1436B】Prime Square 题解

    原题链接 题意简介 要求构造一个由不大于 1e5 的非负数构成的正方形矩阵,矩阵的每个元素不是质数,但每一行.每一列的数字的和都是质数. 思路分析 看到样例二,我们知道数字可以重复. 于是,我们很容易 ...

  6. nginx负载均衡常见问题配置信息

    nginx为后端web服务器(apache,nginx,tomcat,weblogic)等做反向代理 几台后端web服务器需要考虑文件共享,数据库共享,session共享问题.文件共享可以使用nfs, ...

  7. C. Bank Hacking 解析(思維)

    Codeforce 796 C. Bank Hacking 解析(思維) 今天我們來看看CF796C 題目連結 題目 略,請直接看原題. 前言 @copyright petjelinux 版權所有 觀 ...

  8. 拖拽编写SVG图形化工具(二)

    getAttributesNs/setAttributesNs element.setAttributeNS(namespace,name,value) namespace 是指定属性的命名空间的一个 ...

  9. 从eclipse迁移到ideal

    个人用eclipse比较多,什么Luna,Neon,Mars.几乎每年都要研发出一个版本.目前所在的这家公司,维护的是一个10年的老项目,需求迭代频率比较高,业务代码臃肿而难理解,依赖关系不清晰,代码 ...

  10. ORACLE 数据泵 expdp/impdp

    ORACLE 数据泵 expdp/impdp 一.概念 Oracle Database 10g 引入了最新的数据泵(Data Dump)技术,数据泵导出导入 (EXPDP 和 IMPDP)的作用: 1 ...