腾讯云容器服务 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 ...
随机推荐
- day22 Pyhton学习 re模块和正则表达式
正则表达式本身也和python没有什么关系,就是匹配字符串内容的一种规则. 官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个" ...
- jquery的实时触发事件(textarea实时获取中文个数)
jquery的实时触发事件(textarea实时获取中文个数) (2014-09-16 11:49:50) 转载▼ 标签: 实时触发事件 中文个数 onpropertychange oninput o ...
- 【学习笔记】Min-max 容斥
经常和概率期望题相结合. 对于全序集合 \(S\),有: \[\max S=\sum\limits_{T\subseteq S,T\not=\varnothing}(-1)^{\vert T\vert ...
- 初识 MongoDB 和 .NET Core 入门
昨天搭建完毕 MongoDB 集群 后,开始计划了解 MongoDB ,并引入使用场景,这里介绍一下学习过程中的一些笔记,帮助读者快速了解 MongoDB 并使用 C# 对其进行编码. 浅入 Mong ...
- matplotlib条形图
三个班级平均分 import matplotlib.pyplot as plt import matplotlib as mpl classes = ['class1','class2','class ...
- centos6.8 Mysql5.6.22 升级 mysql-5.7.20
一.检查系统环境 二.备份数据库 mysqldump –all-databases > allbackupfile.sql (建议:有条件的话可使用图形化界面备份,操作灵活) 三.下载安装文件 ...
- 子网划分和VLAN
子网划分 IP地址的结构和分类 根据tcp/ip协议,连接在Internet上的每个设备都必须有一个IP地址,它是一个32位二进制数,为了方便人类识别,我们将它用点分十进制表示,每8位分为一段. IP ...
- docker 启动mysql 挂载宿主机目录
在使用docker run 运行镜像获取容器时,有些容器会自动产生一些数据,为了这些数据会因为container (容器)的消失而消失,保证数据的安全,比如mysql 容器在运行中产生的一些表的数据, ...
- ubuntu 16.04 Chrome
打开终端 输入 命令1:sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.list ...
- gulp + angularjs
示例项目介绍 文中使用的例子是一个基于 Angular.js 实现的网页版 Todo App,在 Github 中下载angular-quickstart.项目代码结构如下 清单 5. 项目目录结构 ...