0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GlobalRouter模式架构和VPC-CNI 模式架构对比

454398 来源:it610 作者:腾讯云原生 2020-09-23 11:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Kubernetes 版本迭代比较快,新版本通常包含许多 bug 修复和新功能,旧版本逐渐淘汰,建议创建集群时选择当前 TKE 支持的最新版本,后续出新版本后也是可以支持 Master 和节点的版本升级的。

网络模式: GlobalRouter vs VPC-CNI

GlobalRouter 模式架构:

GlobalRouter模式架构和VPC-CNI 模式架构对比

基于 CNI 和 网桥实现的容器网络能力,容器路由直接通过 VPC 底层实现;

容器与节点在同一网络平面,但网段不与 VPC 网段重叠,容器网段地址充裕。

VPC-CNI 模式架构:

基于 CNI 和 VPC 弹性网卡实现的容器网络能力,容器路由通过弹性网卡,性能相比 Global Router 约提高 10%;

容器与节点在同一网络平面,网段在 VPC 网段内;

支持 Pod 固定 IP。

网络模式对比:

支持三种使用方式:

创建集群时指定 GlobalRouter 模式;

创建集群时指定 VPC-CNI 模式,后续所有 Pod 都必须使用 VPC-CNI 模式创建;

创建集群时指定 GlobalRouter 模式,在需要使用 VPC-CNI 模式时为集群启用 VPC-CNI 的支持,即两种模式混用。

选型建议:

绝大多数情况下应该选择 GlobalRouter,容器网段地址充裕,扩展性强,能适应规模较大的业务;

如果后期部分业务需要用到 VPC-CNI 模式,可以在 GlobalRouter 集群再开启 VPC-CNI 支持,也就是 GlobalRouter 与 VPC-CNI 混用,仅对部分业务使用 VPC-CNI 模式;

如果完全了解并接受 VPC-CNI 的各种限制,并且需要集群内所有 Pod 都用 VPC-CNI 模式,可以创建集群时选择 VPC-CNI 网络插件。

参考官方文档 《如何选择容器服务网络模式》: https://cloud.tencent.com/document/product/457/41636

运行时: Docker vs Containerd

Docker 作为运行时的架构:

kubelet 内置的 dockershim 模块帮傲娇的 docker 适配了 CRI 接口,然后 kubelet 自己调自己的 dockershim (通过 socket 文件),然后 dockershim 再调 dockerd 接口 (Docker HTTP API),接着 dockerd 还要再调 docker-containerd (gRPC) 来实现容器的创建与销毁等。

为什么调用链这么长?Kubernetes 一开始支持的就只是 Docker,后来引入了 CRI,将运行时抽象以支持多种运行时,而 Docker 跟 Kubernetes 在一些方面有一定的竞争,不甘做小弟,也就没在 dockerd 层面实现 CRI 接口,所以 kubelet 为了让 dockerd 支持 CRI,就自己为 dockerd 实现了 CRI。docker 本身内部组件也模块化了,再加上一层 CRI 适配,调用链肯定就长了。

Containerd 作为运行时的架构:

containerd 1.1 之后,支持 CRI Plugin,即 containerd 自身这里就可以适配 CRI 接口。

相比 Docker 方案,调用链少了 dockershim 和 dockerd。

运行时对比:

containerd 方案由于绕过了 dockerd,调用链更短,组件更少,占用节点资源更少,绕过了 dockerd 本身的一些 bug,但 containerd 自身也还存在一些 bug (已修复一些,灰度中)。

docker 方案历史比较悠久,相对更成熟,支持 docker api,功能丰富,符合大多数人的使用习惯。

选型建议:

Docker 方案 相比 containerd 更成熟,如果对稳定性要求很高,建议 docker 方案;

以下场景只能使用 docker:

Docker in docker (通常在 CI 场景)

节点上使用 docker 命令

调用 docker API

没有以上场景建议使用 containerd。

参考官方文档 《如何选择 Containerd 和Docker》:https://cloud.tencent.com/document/product/457/35747

Service 转发模式: iptables vs ipvs

先看看 Service 的转发原理:

节点上的 kube-proxy 组件 watch apiserver,获取 Service 与 Endpoint,根据转发模式将其转化成 iptables 或 ipvs 规则并写到节点上;

集群内的 client 去访问 Service (Cluster IP),会被 iptable/ipvs 规则负载均衡到 Service 对应的后端 pod。

转发模式对比:

ipvs 模式性能更高,但也存在一些已知未解决的 bug;

iptables 模式更成熟稳定。

选型建议:

对稳定性要求极高且 service 数量小于 2000,选 iptables;

其余场景首选 ipvs。

集群类型: 托管集群 vs 独立集群

托管集群:

Master 组件用户不可见,由腾讯云托管

很多新功能也是会率先支持托管的集群

Master 的计算资源会根据集群规模自动扩容

用户不需要为 Master 付费

独立集群:

Master 组件用户可以完全掌控

用户需要为 Master 付费购买机器

选型建议:

一般推荐托管集群

如果希望能能够对 Master 完全掌控,可以使用独立集群 (比如对 Master 进行个性化定制实现高级功能)

节点操作系统

TKE 主要支持 Ubuntu 和 CentOS 两类发行版,带 “TKE-Optimized” 后缀用的是 TKE 定制优化版的内核,其它的是 linux 社区官方开源内核:

TKE-Optimized 的优势:

基于内核社区长期支持的 4.14.105 版本定制

针对容器和云场景进行优化

计算、存储和网络子系统均经过性能优化

对内核缺陷修复支持较好

完全开源:https://github.com/Tencent/TencentOS-kernel

选型建议:

推荐 “TKE-Optimized”,稳定性和技术支持都比较好

如果需要更高版本内核,选非 “TKE-Optimized”版本的操作系统

节点池

此特性当前正在灰度中,可申请开白名单使用。主要可用于批量管理节点:

节点 Label 与 Taint

节点组件启动参数

节点自定义启动脚本

操作系统与运行时 (暂未支持)

产品文档:https://cloud.tencent.com/document/product/457/43719

适用场景:

异构节点分组管理,减少管理成本

让集群更好支持复杂的调度规则 (Label, Taint)

频繁扩缩容节点,减少操作成本

节点日常维护(版本升级)

用法举例:

部分IO密集型业务需要高IO机型,为其创建一个节点池,配置机型并统一设置节点 Label 与 Taint,然后将 IO 密集型业务配置亲和性,选中 Label,使其调度到高 IO 机型的节点 (Taint 可以避免其它业务 Pod 调度上来)。

随着时间的推移,业务量快速上升,该 IO 密集型业务也需要更多的计算资源,在业务高峰时段,HPA 功能自动为该业务扩容了 Pod,而节点计算资源不够用,这时节点池的自动伸缩功能自动扩容了节点,扛住了流量高峰。

启动脚本

组件自定义参数

此特性当前也正在灰度中,可申请开白名单使用。

创建集群时,可在集群信息界面“高级设置”中自定义 Master 组件部分启动参数:

添加节点时,可在云服务器配置界面的“高级设置”中自定义 kubelet 部分启动参数:

节点启动配置

新建集群时,可在云服务器配置界面的“节点启动配置”选项处添加节点启动脚本:

添加节点时,可在云服务器配置界面的“高级设置”中通过自定义数据配置节点启动脚本 (可用于修改组件启动参数、内核参数等):

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务网络
    +关注

    关注

    0

    文章

    14

    浏览量

    7522
  • vpc
    vpc
    +关注

    关注

    0

    文章

    18

    浏览量

    8729
  • kubernetes
    +关注

    关注

    0

    文章

    282

    浏览量

    9558
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    换个芯片就要重写半套代码?PPEC Workbench嵌入式跨架构开发的标准答案

    嵌入式跨架构开发已成为行业常态,但重复开发、工具不兼容、AI赋能不足等痛点,严重制约行业高效发展。当前嵌入式架构呈现多元化趋势,传统开发模式与工具难以适配企业核心需求,行业亟需标准化
    发表于 05-26 13:40

    零碳园区管理系统 “云 - 边 - 端” 三层架构深度解析

    在零碳园区建设浪潮中,"云 - 边 - 端" 三层架构已成为零碳园区管理系统的核心架构模式,更是实现光伏并网合规、绿电高效利用、碳减排目标的关键支撑。不同于传统单一设备管理模式
    的头像 发表于 05-18 11:21 83次阅读
    零碳园区管理系统 “云 - 边 - 端” 三层<b class='flag-5'>架构</b>深度解析

    京东缓存中间件架构与缓存内核优化

    一、京东缓存中间件架构 1、背景 在当今高并发、分布式的系统架构中,缓存已成为提升应用性能、降低数据库负载的核心组件。随着业务规模的扩大与系统复杂度的增加,缓存的使用和管理面临诸多挑战:部署模式多样
    的头像 发表于 04-03 16:18 1929次阅读
    京东缓存中间件<b class='flag-5'>架构</b>与缓存内核优化

    工程师之夜系列分享第三十九篇:Kafka、RocketMQ、JMQ 存储架构深度对比

    开源,金融级特性突出)、JMQ(京东开源,侧重高可用与灵活性),从存储模型、数据组织、索引设计等维度展开深度对比,为技术选型与架构优化提供参考。​ 本文将从概念辨析出发,系统拆解主流存储模型与存储引擎的设计逻辑,对比 JMQ、K
    的头像 发表于 01-13 16:19 377次阅读
    工程师之夜系列分享第三十九篇:Kafka、RocketMQ、JMQ 存储<b class='flag-5'>架构</b>深度<b class='flag-5'>对比</b>

    功率放大器的恒压模式和恒流模式的区别

    可能变化,应选择恒流模式。重磅推荐!详细对比表格!重要注意事项能量守恒:无论是哪种模式,输出功率P=V×I都不能超过功放本身的能力。在恒压模式下,接的负载阻抗越低
    的头像 发表于 01-09 16:11 869次阅读
    功率放大器的恒压<b class='flag-5'>模式</b>和恒流<b class='flag-5'>模式</b>的区别

    芯源MCU架构是不是基本都是ARM架构?还有其他的架构吗?

    芯源MCU架构是不是基本都是ARM架构?还有其他的架构吗?
    发表于 11-20 06:21

    常用 MCU 架构对比:ARM、AVR、PIC、RISC-V

    在嵌入式开发中,选择合适的MCU架构往往决定了项目开发效率和最终产品性能。市面上MCU架构繁多,每种架构在指令集、性能、功耗、外设支持和生态成熟度上各有特点。选错架构,不仅可能导致开发
    的头像 发表于 11-17 10:54 2500次阅读
    常用 MCU <b class='flag-5'>架构</b><b class='flag-5'>对比</b>:ARM、AVR、PIC、RISC-V

    浮点舍入模式介绍(六)

    模式(Rounding Mode), RISC-V 架构浮点运算的舍入模式可以通过两种方式指定。 (1)静态舍入模式:浮点指令的编码中有3位作为舍入
    发表于 10-24 07:57

    AES加密模式简介与对比分析

    对这些模式进行对比,我们将了解它们的不同特点和适用场景。 1. 电子密码本模式 (ECB): ECB模式是最简单的加密模式之一,其流程如图
    发表于 10-22 08:21

    什么是ARM架构?你需要知道的一切

    从智能手机到工业边缘计算机,ARM®架构为全球数十亿台设备提供动力。ARM®以其效率优先的设计和灵活的许可模式而闻名,已迅速从移动处理器扩展到人工智能边缘计算、工业控制器,甚至数据中心。本文我们将
    的头像 发表于 09-11 14:48 1994次阅读
    什么是ARM<b class='flag-5'>架构</b>?你需要知道的一切

    一句话了解21种计算模式

    计算技术正以前所未有的速度演进和发展。从最初的单一处理器计算到如今的量子计算、类脑计算,从本地化计算到云计算、边缘计算,计算模式的多样化发展正在重塑我们的数字世界。本文按照架构与资源、能力与性能
    的头像 发表于 08-06 14:31 928次阅读
    一句话了解21种计算<b class='flag-5'>模式</b>

    GNSS模拟器核心架构如何实现?技术主管深度解读设计原理

    本文聚焦GNSS模拟器技术领域的核心难点,包括系统组成与核心引擎,GNSS频段基础,控制模式架构理念
    的头像 发表于 07-29 14:58 783次阅读
    GNSS模拟器核心<b class='flag-5'>架构</b>如何实现?技术主管深度解读设计原理

    AMD FPGA异步模式与同步模式对比

    本文讲述了AMD UltraScale /UltraScale+ FPGA 原生模式下,异步模式与同步模式对比及其对时钟设置的影响。
    的头像 发表于 07-07 13:47 1890次阅读

    同一水平的 RISC-V 架构的 MCU,和 ARM 架构的 MCU 相比,运行速度如何?

    ARM 架构与 RISC-V 架构的 MCU 在同一性能水平下的运行速度对比,需从架构设计原点、指令集特性及实际测试数据展开剖析。以 ARM Cortex-M33 这类 ARMv8M
    的头像 发表于 07-02 10:29 1861次阅读
    同一水平的 RISC-V <b class='flag-5'>架构</b>的 MCU,和 ARM <b class='flag-5'>架构</b>的 MCU 相比,运行速度如何?

    主流版本控制工具Git vs Perforce P4:架构模式、性能、大文件管理及分支管理对比详解

    Git vs Perforce P4,如何选型?架构模式、性能、大文件管理、分支策略四大维度对比,帮你全面了解两者的核心差异,选择更合适你团队需求的版本控制系统。
    的头像 发表于 06-13 14:52 1045次阅读
    主流版本控制工具Git vs Perforce P4:<b class='flag-5'>架构模式</b>、性能、大文件管理及分支管理<b class='flag-5'>对比</b>详解