这也是一篇长文。

Build a Large Scale Cloud Native CI/CD System Based on Tekton

原子能力非常优秀了。

基于 Tekton 做扩展。

cp-controller 支持了 sharding。

解决 Etcd 性能问题的方案就是不用 Etcd,改用 database。

Improve FUSE Filesystem Performance and Reliability

这个 Session 也很硬核。

FUSE device driver 会有额外的数据拷贝和上下文切换,是造成性能损耗的关键因素。

FUSE FD Passthrough 这块参考 PPT 中的链接一起看会好一点: https://lwn.net/Articles/843093/

通过 fuse_connfuse_dev 实现 failover。

通过 requeue 操作防止在 failover 是 FUSE server panic 造成正在操作的文件发生异常。

Chaos Mesh 2.0 Make Chaos Engineering Easy

终于有 Workflow 了。

那么,问题来了,刚执行了主机关机的 Chaos 实验,如何开机呢?

Run wasm applications on kubernetes edge cluster

K3s + Krustlet,有点非主流啊。

Deep Dive CRI-RM-based CPU and NUMA Affinity to Achieve AI Task Acceleration

不得不说 Intel 这个东西设计的可以的。 上篇还说 Kubelet 应该出个插件机制来解决这种问题,Intel 就换另一个思路解决了。

“吵闹的邻居”经典问题。

还支持了傲腾。

在每个节点上做了小粒度的 CPU 池化,将 CPU 分成能共享和不能共享两类。

项目开源仓库地址: https://github.com/intel/cri-resource-manager

有个 PDF 可以参考: https://www.intel.cn/content/dam/www/central-libraries/cn/zh/documents/inspur-aistation-unlocks-compute-with-intel-cri-rm-for-cpu-affinity-scheduling.pdf

BFE Modern Layer 7 Load Balancer for Enterprise Application

BFE 支持了 Ingress。

控制平面也开源了:

BFE 没什么好说的,用就对了。

Best Practice DNS Failure Observability and Diagnosis in Kubernetes

都是常见问题,基本都遇到过。

可以配合官方文档食用: https://kubernetes.io/zh/docs/tasks/administer-cluster/dns-debugging-resolution/

服务端诊断:

dnstap 插件比较有用。

客户端诊断:

https://gist.github.com/xh4n3/61d8081b834d7e21bff723614e07777c

果然,也提到了 pwru。 pwru 才是 YYDS。

pwru 刚开源没多久: https://github.com/cilium/pwru

Packet, Where are you: https://www.youtube.com/watch?v=NhlR11Fp69g

More Secure and Confidential Computing on Linux with Nitro Enclaves

虽然也是打广告,但 Nitro Enclaves 这个东西还是挺有意思的。

连 SSH 都没有。

Exploring Cloud Native Big Data Platform in SPDB

一个新项目 Piraeus Datastore: https://github.com/piraeusdatastore/piraeus

DRBD 这个技术还是非常有意思的: https://github.com/LINBIT/drbd

DRBD 是一个基于软件的、shared-nothing、复制机制的存储解决方案,在主机之间镜像块设备(硬盘、分区、逻辑卷等)的内容。

  • real time,数据的修改会被实时同步
  • transparently,应用程序不需要感知数据存储在多个主机上
  • synchronously or asynchronously

DRBD 构成了一个虚拟块设备的驱动程序,DRBD 位于系统 I/O 堆栈的底部。 DRBD 无法识别文件系统是否损坏。

DRBD 是老技术了,没想到在 K8s 场景下还能接着用起来。

Vivo’s AI Computing Platform on Kubernetes

拼积木大合集,没有太多新意,但都非常落地,遇到了大家都可能会遇到的问题,也有一些通用的解决方案。

都是老生常谈的问题:

  • Ring Allreduce
  • 任务调度顺序

KEDA 其实也问题多多,即使自己写插件也只能解决一部分问题。

VictoriaMetrics 才是 Prometheus 的最佳归宿。

VK 问题也很多。

DGL Operator Distributed Graph Neural Network Training with DGL and K8s

一个 Operator 从 0 到 1 的实现过程。

项目已开源: https://github.com/Qihoo360/dgl-operator

SuperEdge Promoting Kubernetes to the Edge of Technology Decryption

lite-apiserver 可以抽出来做通用的基础 apiserver 缓存层。

用 For 循环也能实现嘛。

云边通信还需要看一下 fabedge。

BPF Introduction, Programming Tips and Tricks

科普型 Session。

BPF 看似很火,实则用不起来的原因:

  • 内核版本太低 3.10,不会升级也不敢升级内核
  • 对操作系统知识很陌生,hold 不住,只能用用现成的 BCC 之类的工具,或许也不用

Monitor mesh for edge clusters

思路不错,应该也适用于用户自定义/多集群/多云/混合云场景。

Data panel 相当于做了 sharding。

监控数据双写。

InfluxDB 主备 + 分片。

十个分布式时序数据库,七个用 InfluxDB,两个用 TDengine,还有一个用 Apache IoTDB。

Keep Persistent Volumes Healthy for Stateful Workloads

权限控制和操作滞后还是有必要的。

数据及时备份。 不过 Velero 能做的很有限。

CSI Driver 平滑重启/升级也是个问题。

但这种对客户端要求有很高,好多客户端实现上不是那么优雅。

上述图片来自: https://yunify.anybox.qingcloud.com/s/VkmOPXFNFVjMdhbfvbTfDjk1AZuwqXqO?type=file&id=4312918

Effective Data Access In Kubernetes for Data-Intelligence Application

Fluid,没有什么好说的,用就对了。

期待 Fluid 能支持更多的 Runtime,为更多的数据调度场景服务。

Intro and Deep Dive into ChubaoFS

ChubaoFS 还是很好用的。

如何让 FUSE 在容器环境下跑的又稳又好,应该是 FS 都是亟需解决的吧。

Extend the operations for container runtime in OpenKruise

尽在 Kruise-daemon。

不过感觉 Kubelet 真的需要插件机制。

原地升级也是老牌需求了。

可以配合官方文档一起看: https://openkruise.io/zh/docs/core-concepts/inplace-update/

Protect your database workloads in K8s

Velero 相关的 Session。

应用的数据一致性,还是需要依赖应用自身啊。

Amberapp 主要是为了解决 Velero hook 的局限性。

项目已经开源: https://github.com/jibudata/amberapp

现阶段支持:

  • PostgreSQL
  • MongoDB
  • MySQL

ML training acceleration with heterogeneous resources in ByteDance

如何实现分配 0.1 卡,具体如何做隔离的没有展开讲(除 MPS 外)。

主要依赖 VK 实现。

异构硬件的资源隔离与亲和性,包括异构的 GPU 网卡直通,应该是件有趣的事情。

更丰富的调度策略。

想要性能好,还是得靠钱堆,感觉没什么黑科技呀。 A100、V100、RDMA、智能网卡都需要钱,小公司根本玩不起。

Overview of CNI 1.0.0 and preview of CNI 2.0

如果能在 2.0 改成 gRPC 会灵活很多。

如果能解决中心化 IPAM、通用化多网卡配置就非常棒了。

又回到了 API First。

1.0 -> 2.0 能不能平滑升级是个问题啊。

  • 如何做到动态升级,而应用层无感知?
  • 多租户如何做隔离?

Kubernetes SIG Storage Introduction and Update

和 CNI 遇到了同样的问题,就是如何兼容厂商的多样性。

Heterogeneous multi-cluster full mesh communication practice

其他参考资料件:

小总结

所有视频均可以在 CNCF 的油管 channel 上观看。

https://www.youtube.com/playlist?list=PLj6h78yzYM2PjmJ9A98QCXnMsmONhU--t