作者简介:冯泳(花名鹿惊),资深技术专家,领有西北工业大学计算机科学博士学位,在高性能计算,大数据和云计算畛域领有十多年的设计开发教训,专一于调度,资源和利用治理畛域。也深度参加相干开源我的项目的开发和商业化,例如 OpenStack, Mesos, Swarm, Kubernetes, Spark 等,曾在 IBM 领导过相干的开发团队。前言在云计算畛域如果还有人没听过 Kubernetes,就如同有人不晓得重庆火锅必须有辣椒。Kubernetes 曾经像手机上的 Android,笔记本上的 Windows 一样成为治理数据中心事实上的规范平台了。围绕着 Kubernetes,开源社区构建了丰盛的技术生态,无论是 CI/CD、监控运维,还是利用框架、平安反入侵,用户都能找到适宜本人的我的项目和产品。可是,一旦将场景扩大到多集群、混合云环境时,用户可能依赖的开源技术就比比皆是,而且往往都不够成熟、全面。
为了让开发者、用户在多集群和混合环境下也能像在单个 Kubernetes 集群平台上一样,应用本人相熟的开源我的项目和产品轻松开发性能,RedHat 和蚂蚁、阿里云独特发动并开源了 OCM(Open Cluster Management)旨在解决多集群、混合环境下资源、利用、配置、策略等对象的生命周期治理问题。目前,OCM 已向 CNCF TOC 提交 Sandbox 级别我的项目的孵化申请。
我的项目官网:https://open-cluster-management.io/
多集群治理倒退历史让咱们把工夫拉回到几年前,当业界关注/争执的焦点还在 Kubernetes 是否生产级可用的时候,就呈现了最早一批登陆“多集群联邦“技术的玩家。它们大都是体量上远超均匀水准的 Kubernetes 实际先驱,从最早 Redhat、谷歌入场做了 KubeFed v1 的尝试,再到起初携手 IBM 吸取经验又推出 KubeFed v2。除了这些大型企业在生产实践 Kuberentes 的场景中摸索多集群联邦技术,在商业市场上,各个厂商基于 Kubernetes 包装的服务产品也大多经验了从单集群产品服务到多集群状态、混合云场景进化的过程。其实,无论是企业本身还是商业用户都有共性的需要,聚焦在以下几个方面:
多地区问题:当集群须要在异构基础设施上或者横跨更广地区进行部署
Kubernetes 集群依赖 etcd 作为数据长久层,而 etcd 作为分布式系统对系统中各个成员之间的网络提早上有要求,对成员的数量也有一些限度,尽管在提早可能容忍的状况下能够通过调整心跳等参数适配,然而不能满足跨国跨洲的全球性部署需要,也不能保障规模化场景下可用区的数量,于是为了让 etcd 至多能够稳固运行,个别会按地区将 etcd 布局为多个集群。此外,以业务可用和安全性为前提,混合云架构越来越多地被用户承受。逾越云服务提供商很难部署繁多 etcd 集群,随之对应的,Kubernetes 集群也被决裂为多个。当集群的数量逐步增多,管理员疲于应答时,天然就须要一个聚合的管控零碎同时治理协调多个集群。
规模性问题:当单集群规模性遇到瓶颈
诚然,Kubernetes 开源版本有着显著的规模性瓶颈,然而更蹩脚是,咱们很难真正量化 Kubernetes 的规模。社区一开始提供了 kubemark 套件去验证集群的性能,可是事实很骨感,kubemark 所做的事件基于局限于在不同节点数量下重复对 Workload 进行扩缩容调度。可是实际中造成 Kubernetes 性能瓶颈的起因简单、场景泛滥,kubemark 很难全面主观形容多集群的规模性,只能作为十分粗粒度下的参考计划。起初社区反对以规模性信封来多维度掂量集群容量,再之后有了更高级的集群压测套件 perf-tests。当用户更清晰地意识到规模性的问题之后,就能够依据理论场景(比方 IDC 规模、网络拓扑等)提前布局好多个 Kubernetes 集群的散布,多集群联邦的需要也随之浮出水面。
...