高性能 Kubernetes 元数据存储 KubeBrain 的设计思路和落地效果-许辰大脑 2. 谐音科比 Kobe Bryant • 背景介绍 • 设计思路 • 性能优化 • 落地效果 • 未来演进 K8s 元信息存储的需求 (1) 读 • 单 Key 读,提供线性一致性 • Range 扫描读,支持快照读,支持分页 写 • K8s 乐观锁 resource version • 单 Key CAS Watch • Kubernetes list-watch (3) 所以 etcd 为目前 K8s 唯一支持的存储 KubeBrain 架构 Kine KubeBrain KubeBrain 架构 • 主从架构 • 主负责写和事件分发 • 从负责读 • 底层对接分布式强一致性存储 • CAS 事务写 • 快照读 实现架构图 存储层 存储层 – 分布式 KV Store ByteKV • Multi Raft Goup • 全局有序 • 消费滑动窗口中的数据实现有序 的 Event 推送 • 当前消费的最大位置为 Brain 层 的 Committed Index,与 快照 读有关 逻辑层 – 单 Key 读 逻辑层 – Range 读 逻辑层 – Range 读一致性 • Range 从 Leader 获取滑动窗 口当前 Committed Index 序 号 • 根据当前序号进行快照读 • Range0 码力 | 60 页 | 8.02 MB | 1 年前3
Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践本,不会丢、也不会错 时刻记着 cache 是最终一致 在做任何读(get、list)操作时,不能假设读到 的是最新版本,也不能假设一次 reconcile 中始 终会读到同一个版本 避免写后读 同一个 controller,在一次 reconcile 中,避免写 (create、update、delete)完一个对象后马上去 读(get、list)最新版本,等controller-runtime me 触发下一次 reconcile 遵循惯例开发模式 即 controller 用读 cache,UT 中不用 cache 附加题:Stale Cache 情况下 情况下 Operator 正确性如何保证 Cache\Planned Action Create Update Delete latest ✅ ✅ ✅ stale c-lag -- ❌ ❌ u-lag -- ✅ ✅0 码力 | 21 页 | 3.06 MB | 9 月前3
k8s操作手册 2.3/etc/containerd/config.toml 这个配置文件是给crictl和kubelet使用的,ctr不使用 这 个 配 置 文 件 , 因 为 ctr 不 使 用 CRI , 所 以 它 不 读 取 plugins."io.containerd.grpc.v1.cri" 配置。 # systemctl enable containerd # systemctl restart containerd 据库,并且数据中的数组是由时间进行索引的。具备以下特点: 大多数数据都是按时间顺序写入,很少涉及修改数据 删除操作都是删除一段时间的数据,而不涉及到删除无规律数据 读操作一般都是升序或者降序 ③HTTP Server: 为告警和绘图提供查询接口 Promethus通过PromQL语句查询指标信息,并在页面展示。虽然Prometheus自 带UI界面,但是大多数0 码力 | 126 页 | 4.33 MB | 1 年前3
Alluxio 助力 Kubernetes, 加速云端深度学习当本地节点的空间少于1056MB时,数据缓存的调度器不会选择该 节点;转而选择其他节点。 alluxio.user.file.passive.cache.enabled false 当从Alluxio远程worker读文件时,是否缓存文件到Alluxio的本 地worker。 alluxio.user.file.readtype.default CACHE 默认的CACHE_PROMOTE会带来显著的性能开销 策略:10 码力 | 22 页 | 11.79 MB | 1 年前3
逐灵&木苏-阿里巴巴 K8S 超大规模实践经验& Index APIServer Client List / Get ETCD rv=nil Page read Filter by condition• APIServer 缓存一致性读 • 索引支持动态新增 • Cache Ready Cache Read & Index APIServer Client list/get @t0 ETCD rv=nil 1. Get rv@t00 码力 | 33 页 | 8.67 MB | 6 月前3
Kubernetes开源书 - 周立⼀个允许您 动态设置副本数,并检查其当前状态的接⼝。有关scale sub-resource的更多细节可在 here 找到。 译者按:Heapster是⼀款容器集群监控及性能分析⼯具,拓展阅 读:https://segmentfault.com/a/1190000007708162 API Object Horizontal Pod Autoscaler是Kubernetes autoscaling0 码力 | 135 页 | 21.02 MB | 1 年前3
共 6 条
- 1













