腾讯云容器服务 TKE 推出新一代零损耗容器网络
随着容器技术的发展成熟,越来越多的组件迁移到容器,在技术迁移过程中,数据库,游戏,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 模式的网络方案中,能够在原有的网络能力中额外增加
- 支持 Pod 绑定 EIP/NAT,不再依赖节点的外网访问能力,无须做 SNAT,可以满足直播、游戏、视频会议等高并发,高带宽外网访问场景
- 支持 Pod 绑定安全组,实现 Pod 级别的安全隔离
- 支持基于 Pod 名称的固定 IP,Pod 重新调度后仍能保证 IP 不变
- 支持 CLB 直通 Pod,不再经过 NodePort 转发,提升转发性能并拥有统一的负载均衡视图
- 即将支持黑石 2.0物理服务器(推荐使用, 默认使用智能网卡,网络性能更高)
- 即将支持基于 Pod 名称的固定 EIP,满足 Pod 固定外网出口
使用方法
申请新一代容器网络方案内测开通后,创建 TKE 集群时容器网络模式选择 VPC-CNI/Pod 独立网卡模式即可:
实现原理简介
新一代方案在原有 VPC-CNI 模式的基础上扩展,依托于弹性网卡,将绑定到节点的弹性网卡通过 CNI 配置到容器网络命名空间,实现容器直接独享使用弹性网卡。
您可以关注腾讯云原生公众号,后续将会推送 TKE 新一代网络方案实现的技术细节。
当前内测阶段使用限制
- 仅支持部分 S5 的机型使用该网络模式。
- 节点上运行的 Pod 数量限制为节点核数的5倍。
- 仅支持新集群,存量 TKE 集群暂不支持变更网络方案。
TKE新一代网络方案内测邀请
我们诚挚邀请您参与腾讯云下一容器独立网卡网络方案产品能力的内测, 您可以通过以下链接提交内测申请:https://cloud.tencent.com/apply/p/85p1zs6x777
【腾讯云原生】云说新品、云研新术、云游新活、云赏资讯,扫码关注同名公众号,及时获取更多干货!!
腾讯云容器服务 TKE 推出新一代零损耗容器网络的更多相关文章
- 在腾讯云容器服务 TKE 中利用 HPA 实现业务的弹性伸缩
在 TKE 上利用 HPA 实现业务的弹性伸缩 概述 Kubernetes Pod 水平自动扩缩(Horizontal Pod Autoscaler,以下简称 HPA)可以基于 CPU 利用率.内存利 ...
- 腾讯云容器服务 TKE 拿下新加坡 MTCS 最高级别安全认证
近日,腾讯云容器服务 TKE 荣获新加坡 MTCS 最高级安全认证,标志着腾讯云 TKE 在为用户提供可靠.易部署.灵活扩展等基础服务上,已经全面满足了新加坡监管机构以及多个行业客户对服务安全的要求. ...
- 容器服务 TKE 存储插件与云硬盘 CBS 最佳实践应用
引言 随着自研上云的深入,越来越多的有状态服务对于在 TKE 集群中使用云上存储能力的需求也越来越强烈. 目前腾讯云容器服务 TKE(Tencent Kubernetes Engine已支持在 TKE ...
- asp.net core使用serilog将日志推送到腾讯云日志服务
为什么是serilog? Serilog是 .NET 中最著名的结构化日志类库. 基于日志事件log events,而不是日志消息log message. 你可以将日志事件格式化为控制台的可读文本或者 ...
- JavaWeb-SpringBoot_(下)腾讯云点播服务之视频的显示-demo
腾讯视频云点播 传送门 项目在腾讯云点播服务之视频的上传(上)[附源码]的基础上添加了两个html页面 此视频 播放传送门 (播放视频GIF会超过10M...) package com.Gary.v ...
- JavaWeb-SpringBoot_(上)腾讯云点播服务之视频的上传-demo
使用Gradle编译项目 传送门 腾讯视频云点播 传送门 项目已托管到Github上 传送门 腾讯云点播服务之视频的显示(下) 传送门 个人腾讯云控制台中的视频管理 IndexController.j ...
- 腾讯云OCR服务二次开发
本文记录了对腾讯云OCR服务二次开发的代码和开发过程中遇到的问题.
- 腾讯云游戏服务平台CMatrix品牌全新升级为GameMatrix
近日,隶属腾讯互娱公共研发运营体系(下文称CROS)下的云游戏服务平台CMatrix宣布进行品牌升级,启用全新商标Tencent GameMatrix,将原先代表云服务的“C”替换成游戏的英文单词“G ...
- 容器服务 TKE 上服务暴露的几种方式
预备知识 1. K8S 上 Service 类型 ClusterIP 通过集群的内部 IP 暴露服务,选择该值,服务只能够在集群内部可以访问,这也是默认的 ServiceType. NodePort ...
随机推荐
- 【组合计数】visit
题目大意 从 \((0,0)\) 开始,每次只可走上下左右一个单位长度,可走重复路,求第 \(T\) 步正好走到 \((n,m)\) 的方案数. 答案要求对 \(MOD\) 取模,\(MOD\) 保证 ...
- canal 整合RabbitMQ
环境如下: canal: 1.15-alpha-1 mysql 5.6.49 rabbitmq 3.7.14 Erlang 21.3 canal 安装和启动 见上篇文章 canal快速安装启动 但是 ...
- go ioutial 读取写入文件
package main import ( "fmt" "io/ioutil" "os" ) func main() { // 读取文件 / ...
- centos8安装fastdfs6.06集群方式一之:软件下载与安装
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...
- SQL 禁止在 .NET Framework 中执行用户代码。启用 "clr enabled" 配置选项
注:本文摘自:http://blog.csdn.net/heshengfen123/article/details/3597125 在执行SQL脚本过程中如果出现 禁止在 .NET Framework ...
- MySQL5.6的二进制安装
5.6 5.7 用的最多 差别不大. 首先从网上下在二进制文件 先去官网找到自己想要的版本 https://dev.mysql.com/downloads/mysql/ https://dev.mys ...
- Linux入门到放弃之六《磁盘和文件系统管理一》
要求:创建卷组名为 mail_store:逻辑卷名 mail,从卷组mail_store上划出50GB空间, 使用mkfs命令创建ext3文件系统,并实现开机自动挂载,挂载点/mailbox: (1) ...
- ABAP CA CO CS CP 等操作符
DATA: L_STR1 TYPE STRING, L_STR2 TYPE STRING. L_STR1 = 'ca'. "匹配字符 L_STR2 = 'hubab'. "被匹配字 ...
- svnsync笔记
svnsync从库配置 1.创建空的从库 root@test: /svn # svnadmin create test 2.从库用户配置 修改authz : [groups] sync = sync ...
- 【总结】docker
1 docker概述 1.1 docker简介 Docker目标是实现轻量级的操作系统虚拟化解决方案.比虚拟机更轻量级. 虚拟机可以理解成一栋楼里的一个个房间(共享花园基地等),而docker可以理解 ...