还在为多集群管理烦恼吗?RedHat 和蚂蚁、阿里云给开源社区带来了OCM

简介: 为了让开发者、用户在多集群和混合环境下也能像在单个 Kubernetes 集群平台上一样,使用自己熟悉的开源项目和产品轻松开发功能,RedHat 和蚂蚁、阿里云共同发起并开源了 OCM(Open Cluster Management,项目官网 (_https://open-cluster-management.io/_),旨在解决多集群、混合环境下资源、应用、配置、策略等对象的生命周期管理问题。目前,OCM 已向 CNCF TOC 提交 Sandbox 级别项目的孵化申请。​

作者:冯泳(鹿惊)

在云计算领域如果还有人没听过 Kubernetes,就好像有人不知道重庆火锅必需有辣椒。Kubernetes 已经像手机上的 Android ,笔记本上的 Windows 一样成为管理数据中心事实上的标准平台了。围绕着 Kubernetes ,开源社区构建了丰富的技术生态,无论是 CI/CD、监控运维,还是应用框架、安全反入侵,用户都能找到适合自己的项目和产品。可是,一旦将场景扩展到多集群、混合云环境时,用户能够依赖的开源技术就屈指可数,而且往往都不够成熟、全面。

为了让开发者、用户在多集群和混合环境下也能像在单个 Kubernetes 集群平台上一样,使用自己熟悉的开源项目和产品轻松开发功能,RedHat 和蚂蚁、阿里云共同发起并开源了 OCM(Open Cluster Management,项目官网 (_https://open-cluster-management.io/_),旨在解决多集群、混合环境下资源、应用、配置、策略等对象的生命周期管理问题。目前,OCM 已向 CNCF TOC 提交 Sandbox 级别项目的孵化申请。

Open Cluster Management

多集群管理发展历史

让我们把时间拉回到几年前,当业界关注/争论的焦点还在 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 集群的分布,多集群联邦的需求也随之浮出水面。

容灾/隔离性问题:当出现更多粒度的隔离和容灾需求。

业务应用的容灾通过集群内的调度策略,将应用部署到不同粒度的基础设施可用区来实现。结合网络路由、存储、访问控制等技术,可以解决可用区失效后业务的连续性问题。但是如何解决集群级别,甚至是集群管理控制平台自身的故障呢?

etcd 作为分布式系统可以天然解决大部分节点失败的问题,可是不幸的是实践中 etcd 服务也还是可能出现宕机的状况,可能是管理的操作失误,也可能是出现了网路分区。为了防止 etcd 出现问题时“毁灭世界”,往往通过缩小“爆炸半径”来提供更粒度的容灾策略。比如实践上更倾向于在单个数据中心内部搭建多集群以规避脑裂问题,同时让每集群成为独立的自治系统,即使在出现网络分区或者更上层管控离线的情况下可以完整运行,至少稳定保持现场。这样自然就形成了同时管控多个 Kubernetes 集群的需求。

另一方面,隔离性需求也来自于集群在多租户能力上的不足,所以直接采取集群级别的隔离策略。顺带一提的好消息是 Kubernetes 的控制面公平性/多租户隔离性正在一砖一瓦建设起来,通过在 1.20 版本进入 Beta 的 API Priority And Fairness 特性,可以根据场景主动定制流量软隔离策略,而不是被动的通过类似 ACL 进行流量的惩罚限流。如果在最开始进行集群规划的时候划分为多个集群,那么隔离性的问题自然就解决了,比如我们可以根据业务给大数据分配独占集群,或者特定业务应用分配独占请集群等等。

OCM 的主要功能和架构

OCM 旨在简化部署在混合环境下的多 Kubernetes 集群的管理工作。可以用来为 Kubernetes 生态圈不同管理工具拓展多集群管理能力。OCM 总结了多集群管理所需的基础概念,认为在多集群管理中,任何管理工具都需要具备以下几点能力:

  1. 理解集群的定义
  2. 通过某种调度方式选择一个或多个集群
  3. 分发配置或者工作负载到一个或多个集群
  4. 治理用户对集群的访问控制
  5. 部署管理探针到多个集群中

OCM 采用了 hub-agent 的架构,包含了几项多集群管理的原语和基础组件来达到以上的要求:

  • 通过 Managed Cluster API 定义被管理的集群,同时 OCM 会安装名为 Klusterlet 的 agent 在每个集群里来完成集群注册,生命周期管理等功能。
  • 通过 Placement API 定义如何将配置或工作负载调度到哪些集群中。调度结果会存放在 Placement Decision API 中。其他的配置管理和应用部署工具可以通过 Placement Decisiono 决定哪些集群需要进行配置和应用部署。
  • 通过 Manifest Work API 定义分发到某个集群的配置和资源信息。
  • 通过 Managed Cluster Set AP 对集群进行分组,并提供用户访问集群的界限。
  • 通过 Managed Cluster Addon API 定义管理探针如何部署到多个集群中以及其如何与 hub 端的控制面进行安全可靠的通信。

架构如下图所示,其中 registration 负责集群注册、集群生命周期管理、管理插件的注册和生命周期管理;work 负责资源的分发;placement 负责集群负载的调度。在这之上,开发者或者 SRE 团队能够基于 OCM 提供的 API 原语在不同的场景下方便的开发和部署管理工具。


通过利用 OCM 的 API 原语,可以简化许多其他开源多集群管理项目的部署和运维,也可以拓展许多 Kubernetes 的单集群管理工具的多集群管理能力。例如:

  1. 简化 submariner 等多集群网络解决方案的管理。利用 OCM 的插件管理功能将 submariner 的部署和配置集中到统一的管理平台上。
  2. 为应用部署工具(KubeVela, ArgoCD等)提供丰富的多集群负责调度策略和可靠的资源分发引擎。
  3. 拓展现有的 kuberenetes 单集群安全策略治理工具(Open Policy Agent,Falco 等)使其具有多集群安全策略治理的能力。

OCM 还内置了两个管理插件分别用来进行应用部署和安全策略管理。其中应用部署插件采用了订阅者模式,可以通过定义订阅通道(Channel)从不同的源获取应用部署的资源信息,其架构如下图所示:
​ 


​同时为了和 kubernetes 生态系统紧密结合,OCM 实现了 kubernetes sig-multicluster 的多个设计方案,包括 KEP-2149 Cluster ID 和 KEP-1645 Multi-Cluster Services API 中关于clusterset 的概念。也在和其他开发者在社区共同推动 Work API ​的开发。

OCM 的主要优势

高度模块化 --- 可自由选择/剪裁的模块

整个 OCM 架构很像是“微内核”操作系统,OCM 的底盘提供核心能力集群元数据抽象等等服务,而其他扩展能力都是作为独立组件可拆分的进行部署。如上图所示 OCM 的整个方案里除了最核心的能力部分之外,其他上层的能力都是可以根据实际需求进行裁剪的,比如如果我们不需要复杂集群拓扑关系,那么就可以剪裁掉集群分组相关的模块,如果我们不需要通过 OCM 下发任何资源仅作为元数据使用,那么甚至可以剪裁掉整个资源下发的 Agent 组件。这也有利于引导用户逐步登陆 OCM ,在初期用户可能只需要用到很小的一部分功能,再随着场景拓展慢慢引入更多的特性组件,甚至同时支持在正在运行中的控制面上热插拔。

更具有包容性 --- 复杂使用场景的瑞士军刀

整个 OCM 方案在设计之初就考虑到通过集成一些第三方主流的技术方案进行一些复杂场景高级能力的建设。比如为了支持更复杂的应用资源渲染下发,OCM 支持以 Helm Chart 的形式安装应用且支持载入远程 Chart 仓库。同时也提供了 Addon 框架以支持使用方通过提供的扩展性接口定制开发自己的需求,比如 Submarine 就是基于 Addon 框架开发的多集群网络信任方案。

易用性 --- 降低使用复杂性

为了降低用户的使用复杂度以及迁移到 OCM 方案的简易度,OCM 提供了传统指令式的多集群联邦控制流程。值得注意的是以下提及功能尚在研发过程中,将在后续版本和大家正式见面:

  • 通过 Managed Cluster Action 我们可以向被纳管的集群逐个下发原子指令,这也是作为一个中枢管控系统自动化编排各个集群最直观的做法。一个 Managed Cluster Action 可以有自己的指令类型,指令内容以及指令执行的具体状态。
  • 通过 Managed Cluster View 我们可以主动将被纳管集群中的资源“投射”到多集群联邦中枢系统中,通过读取这些资源在中枢中的“投影”,我们可以在联邦系统中进行更动态准确的决策。

OCM 在蚂蚁集团的实践

OCM 技术已经应用到蚂蚁集团的基础设施中,作为第一步,通过运用一些类似与社区 Cluster API 的运维手段将 OCM Klusterlet 逐个部署到被管理的集群中去,从而把蚂蚁域内几十个线上线下集群的元信息统一接入到了OCM中。这些 OCM Klusterlet 为上层的产品平台提供了多集群管理运维的基础能力方便以后的功能扩展。具体来讲 OCM 第一步的落地内容包括以下方面:

  • 无证书化:在传统的多集群联邦系统中,我们往往需要给各个集群的元数据配置上对应的集群访问证书,这也是 KubeFed v2 的集群元数据模型里的必需字段。由于 OCM 整体采用了 Pull 的架构,由部署在各个集群中的 Agent 从中枢拉取任务并不存在中枢主动访问实际集群的过程,所以每份集群的元数据都只是彻底“脱敏”的占位符。同时因为证书信息不需要进行存储所以在 OCM 方案中不存在证书被拷贝挪用的风险。
  • 自动化集群注册:先前集群注册的流程中存在较多人工干预操作的环节拉长了协作沟通时间的同时又损失了变更灵活性,比如站点级别或者机房级别的弹性。在很多场景下人工的核验必不可少,可以充分利用 OCM 集群注册提供的审核和验证能力,并将他们集成进域内的批准流程工具,从而实现整个集群自动化的注册流程,达成以下目标 :

(1) 简化集群初始化/接管流程 。(2) 更清晰地控制管控中枢所具备的权限。

  • 自动化集群资源安装/卸载:所谓接管主要包括两件事情 (a) 在集群中安装好管理平台所需的应用资源 (b) 将集群元数据录入管理平台。对于 (a) 可以进一步分为 Cluster 级别和 Namespace 级别的资源,而 (b) 一般对于上层管控系统是个临界操作,从元数据录入的那一刻之后产品就被认为接管了集群。在引入OCM 前,所有的准备的工作都是需要人工推动一步一步准备。通过 OCM 整个流程可以自动化,简化人工协作沟通的成本。这件事情的本质是将集群纳管梳理成一个流程化的操作,在集群元数据之上定义出状态的概念让产品中枢可以流程化地自动化接管所要做的”琐事“。在 OCM 中注册好集群之后资源的安装与卸载流程都被清晰的定义了下来。

通过上述工作,蚂蚁域内的数十个集群都在 OCM 的管理范围内。在双十一等大促活动中,自动创建和删除的集群也实现了自动化的接入和删除。后面也计划了与 KubeVela 等应用管理技术集成,协同完成应用,安全策略等在蚂蚁域内的云原生化管理能力。

OCM 在阿里云的实践

在阿里云,OCM 项目则是 KubeVela ​面向混合环境进行无差别应用交付的核心依赖之一。KubeVela 是一个基于开放应用模型(OAM)的“一站式”应用管理与交付平台,同时也是目前 CNCF 基金会托管的唯一一个云原生应用平台项目。在功能上,KubeVela 能够为开发者提供端到端的应用交付模型,以及灰度发布、弹性伸缩、可观测性等多项面向多集群的运维能力,能够以统一的工作流面向混合环境进行应用交付与管理。在整个过程中,OCM 是 KubeVela 实现 Kubernetes 集群注册、纳管、应用分发策略的主要技术。

在公共云上,KubeVela 的上述特性结合阿里云 ACK 多集群纳管能力,则可以为用户提供了一个强大的应用交付控制平面,能够轻松实现:

  • 混合环境一键建站。例如,一个典型的混合环境可以是一个公共云的 ACK 集群(生产集群)加上一个被 ACK 多集群纳管的本地 Kubernetes 集群(测试集群)。在这两个环境中,应用组件的提供方往往各不相同,比如数据库组件在测试集群中可能是 MySQL,而在公共云上则是阿里云 RDS 产品。这样的混合环境下,传统的应用部署和运维都极其复杂的。而 KubeVela 则可以让用户非常容易的在一份部署计划中详细定义待部署制品、交付工作流、声明不同环境的差异化配置。这不仅免去了繁琐的人工配置流程,还能借助 Kubernetes 强大的自动化能力和确定性大幅降低发布和运维风险。
  • 多集群微服务应用交付:云原生架构下的微服务应用,往往由多样化的组件构成,常见的比如容器组件、Helm 组件、中间件组件、云服务组件等。KubeVela 为用户提供面向微服务架构的多组件应用交付模型,借助 OCM 提供的分发策略在多集群、混合环境中进行统一的应用交付,大大降低运维和管理微服务应用的难度。

在未来,阿里云团队会同 RedHat/OCM 社区、Oracle、Microsoft 等合作伙伴一起,进一步完善 KubeVela 面向混合环境的应用编排、交付与运维能力,让云原生时代的微服务应用交付与管理真正做到“既快、又好”。

加入社区

目前 OCM 社区还处在快速开发的早期,非常欢迎有兴趣的企业、组织、学校和个人参与。在这里,你可以和蚂蚁集团、RedHat、和阿里云的技术专家们以及 Kubernetes 核心 Contributor 成为伙伴,一起学习、搭建和推动 OCM 的普及。

  • GitHub 地址(https://github.com/open-cluster-management-io
  • 通过视频了解 OCM(https://www.youtube.com/channel/UC7xxOh2jBM5Jfwt3fsBzOZw
  • 来社区周会认识大家(https://docs.google.com/document/d/1CPXPOEybBwFbJx9F03QytSzsFQImQxeEtm8UjhqYPNg
  • 在 Kubernetes Slack 频道 # open-cluster-mgmt 自由交流(https://slack.k8s.io/
  • 加入邮件组浏览关键讨论 (https://groups.google.com/g/open-cluster-management
  • 访问社区官网获取更多信息(https://open-cluster-management.io/

今年 9 月 10 日 INCLUSION·外滩大会将如期举行,作为全球金融科技盛会,它将继续保持科技·让技术更普惠的初心。11 日下午的多集群、混合云架构开源专场,OCM 社区的主要开发人员会为大家带来围绕 OCM 构建的多集群、混合云最佳实践,欢迎你届时线下参加,面对面交流。

感谢你对 OCM 的关注与参与,欢迎分享给有同样需求的更多朋友,让我们共同为多集群、混合云的使用体验更进一步而添砖加瓦!

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lol模型导入ue4_Houdini amp; UE4 程序化建模——石头(一)基础工作流

导言最近程序化建模的风气在国内兴起,建立好程序化建模流程,通过调参就可以生成丰富的美术资源。可以程序化建模的内容有很多,国外的程序化曼哈顿、林中小屋等都是很好的例子,所有带有规律的模型都可以程序化来做。程序化可以做从…

iOS 端容器之 WKWebView 那些事

简介: 本文主要是关于在端容器设计开发过程中,WKWebView 使用上遇到的一些问题和解决办法。 一 背景 熟悉 iOS\macOS Hybrid 混合开发的同学应该都有体会,WKWebView 虽然是苹果作为替代 UIWebView\WebView 而推出的"新"组件&…

95后热搜哪些事,夸克用AI引擎发布2021年度关键词

编辑 | 宋慧 出品 | CSDN 云计算 岁末将至,哪些心潮澎湃的瞬间与难以忘怀的言语,能够代表你的2021? 12月14日,在夸克Meet AI开放日上,阿里巴巴智能信息事业群旗下的智能搜索APP夸克与中国传媒大学互联网信息研究院联合…

MaxCompute Spark 资源使用优化祥解

简介: 本文主要讲解MaxCompute Spark资源调优,目的在于在保证Spark任务正常运行的前提下,指导用户更好地对Spark作业资源使用进行优化,极大化利用资源,降低成本。 本文作者:吴数傑 阿里云智能 开发工程师 …

tika设置文件长度限制_MySQLInnoDB某些你没注意过的限制

01—目录02—前言最近一个朋友遇到一个面试题:MySQL的InnoDB的一个表最多能存多少数据?这么一问,我瞬间也蒙圈了,这是我的知识盲区啊,之前还从来没考虑过这样的问题。那我怎么能甘心的,只好去网上一顿查资料…

如何保证 Serverless 业务部署更新的一致性?

简介: 代码在其他场景被更新,需要我们在当前得到感知,这个事情其实是非常重要的,和代码的安全发布密不可少。而此时,通过 Serverless Devs 是可以做到的。 作者|Anycodes 从我做 Serverless 工具开始&…

Gartner最新报告:阿里云计算、存储、网络、安全均获得最高分

12月15日,国际权威机构Gartner发布最新报告,全面评估全球顶级云厂商整体能力。阿里云IaaS基础设施能力拿下全球第一,在计算、存储、网络、安全四项核心评比中均斩获最高分,这也是中国云首次超越亚马逊、微软、谷歌等国际厂商。 《…

软件工程软件产品质量要求与评价_软件质量保证(Quality Assurance)中常见的活动...

质量保证QA关注在软件产品生成的整个过程,主要验证软件产品开发过程中相关实施过程的完整性、一致性和有效性,确保开发活动和测试活动等遵循正确的过程,为软件产品达到合适的质量级别提供信心。为了实现过程的可重用性和持续改进,…

普诺飞思公布发明者社区,启发基于事件视觉技术的创新

2021 年 12 月 15 日,全球领先的神经拟态视觉传感公司普诺飞思(Prophesee)正式对外公开其发明者社区,展示基于事件的 Metavision 技术的工作及技术创新成果。该发明者社区创建于 2014 年,由来自各行业的研究人员、学者…

揭秘!业界创新的代码仓库加密技术

简介: 原理与演示。 01 / 什么是代码加密? 云端加密代码服务是云效团队的自研产品,是目前国内率先支持代码加密的托管服务,也是目前世界范围内率先基于原生Git实现加密方案的代码托管服务。 通过在云端对托管在云效Codeup的代码…

360 政企安全集团基于 Flink 的 PB 级数据即席查询实践

简介: Threat Hunting 平台的架构与设计,及以降低 IO 为目标的优化与探索。为什么以及如何使用块索引。 本文整理自 360 政企安全集团的大数据工程师苏军以及刘佳在 Flink Forward Asia 2020 分享的议题《基于 Flink 的 PB 级数据即席查询实践》&#xf…

支持mysql的报表开发工具_你不知道的mysql的3W法,内附超好用的报表工具

WHAT? 什么是MySQL?MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。WHY?为什么需要MySQL工具?MySQL现已经成为大多数中小企…

中文巨量模型“源1.0”的学习优化方法

最近,浪潮人工智能研究院发布了中文巨量模型“源1.0”,参数量达2457亿,超越美国OpenAI组织研发的GPT-3。“源1.0”在语言智能方面表现优异,获得中文语言理解评测基准CLUE榜单的零样本学习(zero-shot)和小样…

阿里集团业务驱动的升级 —— 聊一聊Dubbo 3.0 的演进思路

简介: 阿里云在 2020年底提出了“三位一体”理念,目标是希望将“自研技术”、“开源项目”、“商业产品”形成统一的技术体系,令技术的价值可以达到最大化。Dubbo 3.0 作为三位一体架构的首推方案,在集团内被寄予了厚望。它完美融…

淘宝小部件:全新的开放卡片技术!

简介: 淘宝的开放技术目前主要有两种形态,第一种是小程序,第二种是今天的主角小部件。它是基于小程序技术体系,面向标准化、轻量化、高性能的开放卡片场景。本文我们将通过技术设计策略、核心技术设施、业务场景接入、技术演进路线…

hadoop上传文件java_hadoop入门之通过java代码实现将本地文件上传到hadoop的文件系统...

第一步:首先搭建java的编译环境。创建一个Java Project工程,名为upload。第二步:选中所需的Jar包。选中JRE System Library 选择BuildPath Configure Build Path 选择hadoop相应的jar包。通过Add External JARS --〉Hadoop-0.20.2下所有的jar…

外卖和快递行业数据_抢人大战愈演愈烈,东莞再现用工荒!不只流向外卖、快递等行业...

12月初,距离过年只有两个月的时间。按照往年惯例,这并不是一个大肆招人的好时机。然而世界工厂中国,一场抢人大战却于此时低调地打响,在东莞,不少工厂亲身上阵,在厂区附近的大街小巷拉满横幅,贴…

HIRO 部署新一代可扩展边缘微型数据中心

边缘计算对于充分发挥人工智能 (AI)、机器学习和物联网 (IoT) 的全部潜能至关重要。这些技术正在融入我们生活的方方面面:自动驾驶、智能楼宇、机器人、供应链管理和医疗保健。 何为边缘计算? 边缘计算作为速度更快的(中间层)数…

阿里数据中台底座的12年建设实践

简介: 在当下如火如荼的金融行业中台建设浪潮中,不少金融机构对于中台建设仍存诸多迷思,中台建设将走向何方?数据资产到底该如何管理?阿里巴巴的中台建设之路应该能为金融机构带来借鉴。 日前,在阿里云举办…

Hologres揭秘:如何支持超高QPS在线服务(点查)场景

简介: 本期我们将揭秘Hologres如何支持超高QPS在线服务(点查)场景。 Hologres(中文名交互式分析)是阿里云自研的一站式实时数仓,这个云原生系统融合了实时服务和分析大数据的场景,全面兼容Post…