上周 Cloud Native Days China 南京站 Meetup 顺利举行,「DaoCloud 道客」大容器团队技术负责人-张潇在会上以《DaoCloud 结合 Karmada 打造新一代企业级多云平台》为主题,与 Karmada 社区及其合作伙伴一起,共同交流云原生多云多集群生产实践经验。现将演讲内容整理如下,以供读者飨食。
01
需求与困扰
今年 2 月,CNCF 发布了一项调研,数据显示,已经有 96% 的企业采用了 Kubernetes,其中 79% 的企业使用的都是通过采购的、拥有 CNCF 官方认证的 Kubernete 平台。因为 Kubernetes 其实是一个比较复杂的平台,里面集成了计算、存储、网络、调度编排等等各种功能,企业如果自己去开发和运维这样的一个平台,是十分耗费精力和成本的。而对于很多大企业来说,为了适应越来越庞大且复杂的云上业务发展需求,以及避免厂商锁定,必然会拥有多个集群和采购多家厂商的 Kubernetes 平台。那么问题就来了,面对集群繁多、业务分散、集群的边界限制等困扰,如何高效统一地管理多集群?
由此,基于客户的需求与困扰,「DaoCloud 道客」开始了多云产品的研究,并梳理出了八大关键点:云提供商多样性、变革敏捷性、灵活和可扩展性、强大安全性、网络性能改进、加强风险管理、避免供应商锁定、推动创新。
02
为何选择
karmada
首先,「DaoCloud 道客」对社区的各种开源项目进行了广泛的调研对比和筛选,最终选择了云原生多云编排开源项目 Karmada。其中,Karmada 最突出的一个点在于,可以让用户像使用单集群一样使用多集群。这意味着用户不必花费太多的学习成本,就能上手基于 Karmada 开发的企业级多云平台,因为用户在前期学习 Kubernetes 的时候已经打下了深厚的基础。通过 Karmada 最核心的能力-- Kubernetes 原生 API 兼容的能力,用户不必对原来使用的 Kubernetes 平台做过多的改造,就能很好地适配 Karmada 的多集群管理平台。同时,Karmada 还具有开放中立、告别绑定、开箱即用、集中式管理、丰富的集群调度策略和流量治理方案等特性和功能。
接着,「DaoCloud 道客」基于 Karmada 研发了一个企业级的多云管理功能模块-KairShip,旨在助力用户把业务从云下走向云上,单云丝滑切换到多云,让用户无需关注底层基础设施差异,不用过多接受新概念。现在 KairShip 已经完美集成到「DaoCloud 道客」最新发布的下一代云操作系统「云原生应用云平台 DaoCloud Enterprise 5.0」之中,通过与应用工作台、可观测性、全局管理、云原生化应用、多云编排、容器管理等功能模块结合,实现一键创建多云集群实例、多云管理权限、应用跨集群分发、存储及配置跨集群创建、跨集群资源检索、跨集群故障转移等多集群管理的核心能力。
图源:演讲 PPT
03
产品化
及未来探索
在 KairShip 中,「DaoCloud 道客」做了一些产品化的研发。基础组件里,开发了负责 API 请求的 KairShip Apiserver,实现权限等同步控制逻辑的 KairShip Controller Manager,支持公有云、私有云、边缘场景网络互通的 network tunnel。同时引入了一些开源组件,如:支持 Karmada 实例 LCM 的 Karmada operator,支持多云资源检索查询加速的 Clusterpedia,以及提供 Karmada host 浏览器终端能力的 CloudTTY。其中, Clusterpedia 和 CloudTTY 是「DaoCloud 道客」自主开源的云原生项目。
图源:演讲 PPT
KairShip 有三个非常重要的能力,第一个是多云多实例的实现。该功能主要为了满足两个客户需求,一是客户环境因素需要多个 Karmada 实例;二是快速一键接入各个集群,屏蔽底层网络等基础设置。因此,「DaoCloud 道客」在 Karmada 开源社区贡献了一个开源组件 Karmada operator,基于 Karmada 社区 helm charts,通过控制器搜集子集群概览信息到 Karmada 实例中,实现 Karmada 实例快速创建、更新、卸载以及 D1 D2 的维护,支持子集群快速一键接入 Karmada 实例。
图源:演讲 PPT
第二个是多云权限,企业级的产品功能最头疼的就是权限问题。Karmada 应用编排过程权限问题怎么隔离?不同部门使用 Karmada,能实现多租户隔离么?「DaoCloud 道客」把 Karmada Host 作为一个普通集群加到整个 DCE 5.0 的集群管理中,同时抽象出关键特征 (RBAC),与多租户中心进行对接,让 Karmada 实例级别实现逻辑层权限同步与校验,并利用 KairShip Apiserver 层进行 API 权限的校验,从而实现多云权限管理。
第三个就是多云资源检索,如何去统一地查看多个集群 (实例) 中的资源呢?「DaoCloud 道客」 通过 ClusterPedia 聚合多集群资源,在兼容 K8s OpenAPI 的基础上额外提供了更加强大的检索功能,让用户更快更方便地在多集群中获取到想要的任何资源。作为一个已经进入 CNCF 沙箱孵化的多云复杂检索工具,ClusterPedia 拥有诸多优势,如:支持查询资源时请求附带关系资源;兼容 Kubernetes OpenAPI,可以直接使用 kubectl 进行多集群检索,无任何依赖;兼容收集不同版本的集群资源,不受主集群版本约束;统一主集群和多集群资源检索入口;资源收集高性能,低内存等等。
在分享的最后,张潇表示得益于 Karmada 社区的不断发展和各方面的愈加完善,「DaoCloud 道客」聚焦在用户体验提升以及企业级其他功能方面,做了差异化的补充。并且将大部分功能积极贡献回社区,坚持做时间的朋友。正如上面提到的向社区贡献的 Karmada operator 能力,希望能够与社区的小伙伴一起优化,为更多用户带来价值。
接下来,Karmada 社区将聚焦多云应用的东西向网络流量问题 (Karmada + Istio)、Karmada-host 控制面高可用 (ETCD)、Karmada 实例平滑升级、多云环境下数据服务如何更好地支持多云应用等方面的功能开发。欢迎广大开发者加入社区,一起使用、讨论与贡献。
图源:演讲 PPT