上云性能下降

网络

overlay 多了一个解封包的动作,其次每个包的有效长度要去掉封装的包头,这是性能差的主要原因,纯三层的underlay模式性能就有很大的提升。其次你访问svc 的方式,无论是通过clusterIP 还是node port 都需要经过kube-proxy ,kube-proxy iptables 模式性能瓶颈很明显,可以换成ipvs 模式再试一下,当然换成cilium 的ebpf 去掉kube-proxy性能提升会更明显
所以分布式水平无限扩容只是个噱头,实际会随着各个节点间的通信慢慢成为瓶颈
 
macvlan/ipvlan提升网络性能外,我们还可以使用Cilium来提升性能,Cilium为云原生提供了网络、可观测性、网络安全等解决方案,同时它是一个高性能的网络CNI插件,高性能的原因是优化了数据发送的路径,减少了iptables开销
notion image

大规模集群

阿里巴巴通过一系列的增强与优化,成功将 Kubernetes 应用到生产环境并达到了单集群 10000 节点的超大规模,具体包括:
  1. 通过将索引和数据分离、数据 shard 等方式提高 etcd 存储容量,并最终通过改进 etcd 底层 bbolt db 存储引擎的块分配算法,大幅提高了 etcd 在存储大数据量场景下的性能,通过单 etcd 集群支持大规模 Kubernetes 集群,大幅简化了整个系统架构的复杂性;
  1. 通过落地 Kubernetes 轻量级心跳、改进 HA 集群下多个 API Server 节点的负载均衡、ListWatch 机制中增加 bookmark、通过索引与 Cache 的方式改进了 Kubernetes 大规模集群中最头疼的 List 性能瓶颈,使得稳定的运行万节点集群成为可能;
  1. 通过热备的方式大幅缩短了 controller/scheduler 在主备切换时的服务中断时间,提高了整个集群的可用性;
  1. 阿里巴巴自研调度器在性能优化上最有效的两个思路:等价类处理以及随机松弛算法。
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP