登录
注册
个人信息
我的订单
我的报告豆
我的优惠券
我的笔记
我的阅读
我的收藏
我的下载
我的上传
我的订阅
在线客服
退出登录
回到首页
AI
搜索
发现报告
发现数据
发现专题
专题报告
专题百科
研选报告
定制报告
VIP
权益
发现大使
发现一下
行业研究
公司研究
宏观策略
财报
招股书
会议纪要
seedance2.0
低空经济
DeepSeek
AIGC
大模型
当前位置:首页
/
行业研究
/
报告详情
高性能 Kubernetes 元数据存储 KubeBrain 的设计思路和落地效果-许辰
电子设备
2022-11-02
ArchSummit北京2022|全球架构师峰会
Andy Yang 杨敏
背景
Kubernetes 规模随公司业务发展增大 10 倍以上,存储、大数据、机器学习等场景云原生化,新场景对 Kubernetes 性能要求更高。
扩展 Kubernetes 集群方式:垂直扩展单个集群或横向扩展多个集群,以降低运维管理成本、减少资源碎片、提高资源利用率。
Kubernetes 中心化架构特点:所有组件通过 apisever 交互,随着规模增大,存储系统成为瓶颈,etcd 存在性能问题。
etcd 存在的问题
etcd 存储瓶颈问题,自研元信息存储调优 etcd 参数、按照对象拆分 etcd、设计新的元信息存储等方案均存在局限性。
KubeBrain 架构
KubeBrain 定位为高性能 K8s 元信息存储,采用主从架构,主负责写和事件分发,从负责读,底层对接分布式强一致性存储。
架构分层:
存储层
:使用 ByteKV 作为分布式 KV Store,支持 Multi Raft Group、全局有序 Range 分区、强一致性、多 key 事务、CAS、快照读、高性能。
逻辑层
:主从架构实现 Watch 机制,保证消息的可靠性、顺序性和实时性;通过滑动窗口和 Committed Index 实现有序 Event 推送;支持单 Key 读和 Range 读,Range 读通过快照读和 Watch 达到最终一致性;采用 RAFT 实现选主和 TSO。
接入层
:对接 K8s 元信息存储需求,包括读(单 Key 读、Range 扫描读)、写(乐观锁、单 Key CAS)、Watch(Kubernetes list-watch 底层依赖)。
性能优化
写优化
:
降低锁粒度:存储引擎替换表锁为行锁,增大写并发。
单点写 -> 多点写:Multi Raft Range 分片,增大写并发;Brain 层无磁盘 io,只有网络 io。
事务优化:精心设计 key 格式,跨分区分布式事务 -> 分区内单机事务。
读优化
:
Range 读:Unary -> Stream 代替分页,降低延迟;内存高效复用,避免 OOM。
多分片并发读:通过并发,大大减少读时延。
读写分离:Follower 可无限扩展,无 raft 同步问题,读写之间无相互影响。
Count 优化:基于周期性 Compact 统计,存在内存降低时延,减轻存储压力。
Watch 优化
:
写性能提升带来直接收益:写延迟降低,watch 延迟自然会降低。
纯内存态实现:无延迟损耗。
逻辑优化:update 方法中,PreKV 字段 apiserver 不会使用,减少一次读。
压测数据
压测环境:配合 apiserver 优化手段,规模达 5w 节点 200w Pod。
生产环境:2 W 节点 100w Pod 超大集群,有效降低资源碎片率。
读写 QPS > 1w。
落地效果
KubeBrain 已构建集成进入 Kubernetes 作为新型 Storage Backend,并已开源,以 TiKV 作为存储引擎。
持续优化和完善系统。
架构演进
目前所有消息严格要求有序,写必须单点;Kubernetes 本质是一个最终一致性的系统,关注单个对象的最终状态。
未来优化方向:分片多点写,避免写单点;分片内部消息严格有序,分片间消息可以乱序;读、写、watch 能力均可以水平扩展。
你可能感兴趣
数据湖统一元数据和存储管理
商贸零售
DataFunSummit2023:数据湖架构峰会
2023-07-12
9-4 海量物联网设备元数据存储引擎选型和演进
商贸零售
DataFunSummit2022:大数据存储架构峰会
2022-07-19
麻省理工(MIT)AI风险存储库报告:人工智能风险的综合性元评审、数据库和分类法
商贸零售
麻省理工学院未来技术研究所
2024-08-21
2-5 Alluxio的元数据同步:设计,实现与优化
商贸零售
DataFunSummit2022:大数据存储架构峰会
2022-07-19
许贤铭 - 外部数据在信贷风控和经营中的应用
商贸零售
DataFunSummit2022:智能金融在线峰会
2022-11-24