基于 Clusternet 与 OCM 打造新一代开放的多集群管理平台
背景
随着 5G、物联网设备的爆炸性增长以及智能终端不断增强的计算能力,带来了前所未有的数据量,传统的中心集中式计算捉襟见肘。“新基建”战略的实施,工业互联网、车联网/自动驾驶、智慧交通、云游戏及 VR/AR 等标杆应用引领产业融合,企业上云常态化,催生出分布式云,混合云,边缘云等概念。Gartner 预计到2025年,超过 50% 的组织将在其选择的地点使用分布式云选项,从而实现业务模型转型。企业生成的 75% 的数据将在传统数据中心或云之外的,更接近最终用户的边缘创建和处理。
云计算行业正在迎来了新一轮的增长,国内外厂商和开源社区率先行动,分别发布并开源了 Open Cluster Management (OCM) 项目和 Clusternet 项目,统一管理多云多集群下的 Kubernetes 应用,将云原生下沉实现云边端一体化。基于 OCM 与 Clusternet 打造新一代开放的多集群管理系统,管理从中心到边缘,从机房到终端的“集群网络”。
Clusternet
Clusternet ( Cluster Internet ) 是腾讯开源的多集群和应用管理软件,无论集群是运行在公有云、私有云、混合云还是边缘云上,Clusternet 都可以让您像在本地运行一样管理/访问它们,用 K8s API 集中部署和协调多集群的应用程序和服务。通过 Addon 插件方式,用户可以一键安装、运维及集成,轻松地管理数以百万计的 Kubernetes 集群,就像访问 Internet 一样自由便捷。
Clusternet 面向未来混合云、分布式云和边缘计算场景设计,支持海量集群的接入和管理,灵活的集群注册能力可以适应各种复杂网络条件下的集群管理需求,通过兼容云原生的 Kubernetes API 简化用户的管理和运维成本,加快用户业务的云原生转型。
Clusternet 为用户提供:
一站式管理各类 Kubernetes 集群
Clusternet 支持 Pull 模式和 Push 模式管理集群。即使集群运行在 VPC 内网中、边缘或防火墙后时,Clusternet 仍可建立网络隧道连接管理集群。
支持跨集群的服务发现及服务互访
在无专网通道的情况下,仍可提供跨集群的访问路由。
完全兼容原生 Kubernetes API
完全兼容 Kubernetes 的标准 API,比如:Deployment,StatefulSet,DaemonSet,同时也包括用户自定义的 CRD 等,用户从单集群应用升级到多集群只需做简单的配置,无需学习复杂的多集群 API。
支持部署 Helm Chart、Kubernetes 原生的应用以及自定义的 CRD
支持 Helm chart 类型应用,包括 Chart 的分发、差异化配置、状态的汇聚等,和原生 Kubernetes API 的能力一致。
丰富、灵活的配置管理
提供了多种类型的配置策略,用户可灵活的搭配这些配置来实现复杂的业务场景,比如多集群灰度发布。
Addon 能力,架构简单
采用了 Aggregated ApiServer 的方式,且不依赖额外的存储,架构简单,便于部署,大大降低了运维复杂度。
便捷接入
Clusternet 提供了完善的对接能力,支持 kubectl plugin[1] 以及 client-go[2],方便业务一键接入,具备管理多集群的能力。
OCM ( Open Cluster Management )
OCM (Open Cluster Management) 是一个社区驱动的项目,专注于 Kubernetes 应用的多集群和多云场景。OCM 旨在简化部署在混合环境下的多 Kubernetes 集群的管理工作,为 Kubernetes 生态圈不同管理工具拓展多集群管理能力。OCM 总结了多集群管理所需的基础概念,采用了 hub-agent 的架构,定义了多项多集群管理的原语和基础组件来达到多集群管理的要求:
通过 ManagedCluster API 定义被管理的集群,同时 OCM 会安装名为 Klusterlet 的 agent 在每个集群里来完成集群注册,生命周期管理等功能。 通过 Placement API 定义如何将配置或工作负载调度到哪些集群中。调度结果会存放在 PlacementDecision API 中。其他的配置管理和应用部署工具可以通过 PlacementDecision 决定哪些集群需要进行配置和应用部署。 通过 ManifestWork API 定义分发到某个集群的配置和资源信息。 通过 ManagedClusterSet API 对集群进行分组,并提供用户访问集群的界限。 通过 ManagedClusterAddon API 定义管理探针如何部署到多个集群中以及其如何与 hub 端的控制面进行安全可靠的通信。
通过利用 OCM 的 API 原语,简化了开源多集群管理项目的部署和运维,拓展许多 Kubernetes 的单集群管理工具的多集群管理能力。例如:
简化 submariner 等多集群网络解决方案的管理。利用 OCM 的插件管理功能将 submariner 的部署和配置集中到统一的管理平台上。 为应用部署工具(KubeVela, ArgoCD 等)提供丰富的多集群负责调度策略和可靠的资源分发引擎。 拓展现有的 Kubernetes 单集群安全策略治理工具(Open Policy Agent,Falco 等)使其具有多集群安全策略治理的能力。
OCM 还通过内置的两个管理插件分别用来进行应用部署和安全策略管理。其中应用部署插件采用了订阅者模式,可以通过定义订阅通道(Channel)从不同的源获取应用部署的资源信息。
Clusternet 与 OCM 结合迸发更强大能力
通过上文介绍可以看出,Clusternet 有着强大的集群接入和管理能力,支持各种复杂场景下的海量集群注册和管理,满足对未来混合云、分布式云和边缘计算的平台管理需求。 同时,OCM 有着成熟的多集群应用管理能力,通过多项多集群管理的原语和基础组件,实现各种 Kubernetes 项目和应用的多集群发布和管理。二者结合实现优势互补,强强联合,提供更为强大的多集群和应用治理能力。
如何将 OCM 与 Clusternet 的能力相结合,来自 Redhat 的社区开发者 (github: skeeey[3]) 实现了 clusternet-addon[4],基于 OCM 的 Addon-Framework[5],展示了 OCM 可以借助于 Clusternet 提供的强大集群管理能力,实现通过 RBAC 对子集群进行访问、通过 Push 模式分发应用到多个子集群中等。OCM 社区将与 Clusternet 社区紧密合作,将与 Clusternet 项目的集成作为一个子项目持续推进。
感兴趣的同学可以查看 clusternet-addon[6] 了解更多信息,或持续关注 OCM 和 Clusternet 项目社区获取最新的动态。
参与社区
OCM 与 Clusternet 项目是 Red Hat 红帽软件,Tencent 腾讯云与合作伙伴开源的重要项目,二者的结合展现了下一代开放的多集群管理平台的强大能力和无与伦比的扩展性,为未来各种新技术、新业态和新服务提供了坚实的平台基础和无限的可能性。
Clusternet 项目已发布 v0.3.0 版本,支持多集群和应用管理的多种特性,随着 Clusternet 的不断迭代,未来将为用户提供更加完备和强大的能力。
OCM 项目和 kubernetes 生态系统紧密结合,实现了 kubernetes sig-multicluster 的多个设计方案,包括 KEP-2149 Cluster ID [7]
和 KEP-1645 Multi-Cluster Services API 中关于 clusterset 的概念[8] 。也在和其他开发者在社区共同推动 Work API [9]) 的开发。
OCM 与 Clusternet 项目仍在快速的开发迭代,欢迎行业公司和社区开发者们共同参与,交流学习,共建未来更加开放,充满无限可能的云世界。
链接
- OCM 项目地址: https://github.com/open-cluster-management-io
- OCM官网地址: https://open-cluster-management.io
- Clusternet 项目地址: https://github.com/clusternet/clusternet
参考资料
kubectl plugin: https://github.com/clusternet/kubectl-clusternet
[2]
client-go: https://github.com/clusternet/clusternet/blob/main/examples/clientgo/READEME.md
[3]
skeeey: https://github.com/skeeey
[4]
clusternet-addon: https://github.com/skeeey/clusternet-addon
[5]
Addon-Framework: https://github.com/open-cluster-management/addon-framework
[6]
clusternet-addon: https://github.com/skeeey/clusternet-addon
[7]
KEP-2149 Cluster ID: https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster/2149-clusterid
[8]
clusterset的概念: https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster/1645-multi-cluster-services-api
[9]
Work API: https://github.com/kubernetes-sigs/work-api
>【腾讯云原生】云说新品、云研新术、云游新活、云赏资讯,扫码关注同名公众号,及时获取更多干货!!

基于 Clusternet 与 OCM 打造新一代开放的多集群管理平台的更多相关文章
- 基于zookeeper+mesos+marathon的docker集群管理平台
参考文档: mesos:http://mesos.apache.org/ mesosphere社区版:https://github.com/mesosphere/open-docs mesospher ...
- 基于Python+Django的Kubernetes集群管理平台
➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...
- Clusternet - 新一代开源多集群管理与应用治理项目
作者 徐迪,腾讯云容器技术专家. 汝英哲,腾讯云高级产品经理. 摘要 在过去的数年里,云计算领域经历了多次巨大的变革,当前越来越多的组织将应用部署在本地和云上的多个基础设施平台上,这些平台可能是两个公 ...
- 腾讯发布 K8s 多集群管理开源项目 Clusternet
11月4日,在腾讯数字生态大会上,腾讯宣布了云原生领域一项重磅开源进展-- K8s 多集群管理项目 Clusternet 正式开源. Clusternet 由腾讯联合多点生活.QQ音乐.富途证券.微众 ...
- 基于puppet分布式集群管理公有云多租户的架构浅谈
基于puppet分布式集群管理公有云多租户的架构浅谈 一.架构介绍 在此架构中,每个租户的业务集群部署一台puppet-master作为自己所在业务集群的puppet的主服务器,在每个业务集群所拥 ...
- Ignite集群管理——基于静态IP的节点发现
Ignite作为分布式内存,集群管理必不可少,Ignite支持基于组播,静态IP,Zookeeper,JDBC等方式发现节点,本文主要介绍基于静态IP的节点发现. 两个最重要的TCP通信设置类: 1. ...
- Spark运行模式_基于YARN的Resource Manager的Custer模式(集群)
使用如下命令执行应用程序: 和"基于YARN的Resource Manager的Client模式(集群)"运行模式,区别如下: 在Resource Manager端提交应用程序,会 ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:3.安装Oracle RAC-3.6.集群管理命令
3.6. 集群管理命令 3.6.1. RAC的启动与关闭 oracle rac默认会开机自启动,如需维护时可使用以下命令: 关闭: crsctl stop cluster 停止本节点集群服务 crsc ...
- 基于kubernetes构建Docker集群管理详解-转
http://blog.liuts.com/post/247/ 一.前言 Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度 ...
随机推荐
- Linux中Crontab的用法
1.crontab的概念: crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行.可以使用它在每天的 ...
- 9.6、zabbix监控总结
1.自动发现和自动注册的区别: (1)自动发现: 1)用于zabbix-agent的被动模式,是zabbix-server主动去添加主机.在web上创建自动发现的规则 后,zabbix-server会 ...
- 29、html介绍
29.1.前端概述: 1.html.css.js之间的关系: html是页面布局,css是页面渲染,js是让页面动起来(让页面和用户进行交互): 2.浏览器访问web站点获取html页面图示: 3.h ...
- Burning Bridges 求tarjan求割边
Burning Bridges 给出含有n个顶点和m条边的连通无向图,求出所有割边的序号. 1 #include <cstdio> 2 #include <cstring> 3 ...
- 计算机网络体系结构整理-第二单元IP技术
IP技术 1.IPV4 Ipv4的报头格式 Ipv4地址分为ABCDE类, 类别 IP地址范围 私有IP地址范围 A 0.0.0.0-127.255.255.255 10.0.0.0-10.255.2 ...
- WPF教程八:如何更好的使用Application程序集资源
这一篇单独拿出来分析这个程序集资源,为的就是不想让大家把程序集资源和exe程序强关联,因为程序集资源实际上是二进制资源,后续编译过程中会被嵌入到程序集中,而为了更方便的使用资源,我们要好好梳理一下程序 ...
- npm run start失败&Node.js 查询指定端口运行情况及终止占用端口办法
缘由: node.js项目中运行npm run start命令脚本报错,No such file or directory 最开始以为是命令脚本找不到所谓的执行路径,但后面发现不是,是package. ...
- CF277E Binary Tree on Plane
CF277E Binary Tree on Plane 题目大意 给定平面上的 \(n\) 个点,定义两个点之间的距离为两点欧几里得距离,求最小二叉生成树. 题解 妙啊. 难点在于二叉的限制. 注意到 ...
- 『与善仁』Appium基础 — 3、ADB命令介绍
目录 1.ADB命令简介 2.ADB命令运行原理 3.通过ADB命令连接安卓模拟器 (1)安装安卓模拟器 (2)ADB命令连接安卓模拟器 (3)常用Android模拟器端口号 1.ADB命令简介 AD ...
- 求数组的子数组之和的最大值IV
在之前的基础上又安排了二维数组的,在课上一开始是理解错要求了,简单的以为用循环数组就能解决,但是却忽视了子数组是否能构成矩形,之后课下和同学们讨论,主要是多重遍历,但是我还是没搞明白怎么构成新的二维数 ...