《火山引擎:KubeZoo-轻量级Kubernetes多租户方案探索与实践(2022)(20页).pdf》由会员分享,可在线阅读,更多相关《火山引擎:KubeZoo-轻量级Kubernetes多租户方案探索与实践(2022)(20页).pdf(20页珍藏版)》请在三个皮匠报告上搜索。
1、2022/3/261KubeZoo:轻量级Kubernetes 多租户方案探索与实践火山引擎云原生工程师 任静思22.轻量级多租户方案 KubeZoo3.KubeZoo 关键技术细节1.Kubernetes 多租户模型2Kubernetes 多租户模型4Kubernetes 多租户模型Kubernetes Multi-Tenancy Working Group 定义了 3 种多租户模型:1.Namespaces as a Service2.Clusters as a Service3.Control planes as a SKubernetes 多租户模型图片区域为什么需要一种新的多租户方案
2、?1.Cluster/Control plane 隔离方案引入额外开销:-每个租户独立集群降低资源利用率-大量的租户控制面带来运维负担2.应对大量小租户场景-小租户:资源需求量小,集群能够即刻使用-海量小租户共享同一个资源池5轻量级多租户方案 KubeZ7轻量级多租户方案 KubeZooKubeZoo:通过轻量级的网关对租户请求进行协议转换,使得每个租户看到的是完整独占的 Kubernetes 集群,多租户共享 Upstream 集群资源8轻量级多租户方案 KubeZooKubeZoo:1.租户隔离性-租户请求经过 KubeZoo 预处理,租户间互不干扰-租户认为自己独占完整的 Kuberne
3、tes 集群2.高效率-无需为每个租户创建独立的控制面-租户集群可以秒级创建,即刻使用3.轻量级-资源利用率高-运维成本低9轻量级多租户方案 KubeZoo与现有多租户方案对比:9Namespace 隔离KubeZooVirtual Cluster独立集群资源利用率高高中等低运维成本低低较低高集群创建时间短短中等高API 兼容性低中等中等高隔离性低中等中等高KubeZoo 关键技术细节11KubeZoo 关键技术细节租户管理:12KubeZoo 关键技术细节租户请求转换:1.判断是否为租户相关对象2.Tenant 对象通过 Tenant Controller 处理3.否则,通过证书验证租户身份
4、4.通过 Tenant RestStorage 接口转换租户请求5.处理从后端 APIServer 返回的响应6.把响应转发给租户13KubeZoo 关键技术细节API 对象转换(Namespaced):为 namespace 添加租户前缀14KubeZoo 关键技术细节API 对象转换(Cluster-scoped,25 种):为 name 添加租户前缀15KubeZoo 关键技术细节CRD 对象转换:为 group 添加租户前缀16KubeZoo 关键技术细节处理对象之间的交叉引用:17KubeZoo 关键技术细节租户请求公平性:1.为每个租户创建 Flow Schema2.为每个 Flo
5、w Schema 创建 Priority Level3.通过 Priority Level 控制租户权重,处理从后端 APIServer 返回的响应4.APF(APIServer Priority and Fairness):-Shuffle sharding:增强安全性和容错性-Fair Queueing:保障租户公平性18KubeZoo 关键技术细节租户网络隔离(VPC):19总结KubeZoo:1.基于协议转换的 Kubernetes 多租户网关2.与现有多租户模型对比:-轻量级:资源利用率高,运维成本低-高效率:租户集群秒级创建,即刻使用-租户隔离:每个租户拥有独立且完整的 Kubernetes 集群视图3.典型适用场景:-对资源利用率和租户体验有极致要求-海量小租户共享资源池