初探集群联邦

本文分享自天翼云开发者社区《初探集群联邦》,作者:echooo

一.什么是集群联邦?

集群联邦(Federation)是将多个kubenetes集群注册到统一的控制平面,为用户提供统一API入口的多集群解决方案。

集群联邦设计的核心是提供在全局层面对应用的描述能力,并将联邦对象实例化为kubernetes对象,分发到联邦管辖的各个成员集群中。

如下图,在San Francisco,New York,Berlin三个地域,每个地域有一个用户集群,集群内部本身是不跨地域的,网络延迟友好,etcd的性能比较 好。在此基础之上,提供一个统一的接入面,即集群联邦。包括federation api server,etcd,注意这个etcd是跨数据中心的,federation controller manager,用于分发用户请求。

二.集群联邦的必要性

1.数据库存储

etcd作为kubernetes集群的后盾存储数据库,对空间大小的要求比较苛刻,这限制了集群能存储对象的数量和大小。

2.内存占用

为提高系统效率,api server作为api网关,会对集群的所有对象最缓存,集群越大,缓存需要的内存空间就越大。其他kubernetes控制器也需要对侦听的对象构建客户端缓存,这些都需要占用系统内存。

3.控制器复杂度

kubernetes的一个业务流程是由多个对象和控制器联动完成的,即使控制器遵循了设计原则,随着对象数量的增长,控制器的处理耗时也会越来越长。

4.单个计算节点资源上限

单个计算节点的资源,不仅仅是cpu,内存等可量化资源,还有端口,进程数量等不可量化资源。

5.故障域控制

集群规模越大,控制面组件出现故障时影响范围就越大。

6.应用高可用部署

生产应用通常需要多数据中心部署来保障跨地域高可用。

7.混合云

私有云+公有云的混合云模式逐渐成为企业的主流架构。

三.集群联邦的核心架构

1.etcd

作为分布式存储后端存储所有对象。

2.api server

作为api网关,接受所有来自用户及控制平面组件的请求。

3.控制器

不同的控制器对联邦层面的对象进行管理,协调。调度控制器在联邦层面对应用进行调度,分配。集群联邦支持灵活的对象扩展,允许将基本Kubernetes对象扩展为集群联邦对象,并通过统一的联邦控制器推送和收集状态。

四.集群如果注册到集群联邦?---集群注册中心

1.集群注册中心--ClusterRegistry提供了所以联邦下辖的集群清单,以及每个集群的认证信息,状态信息等。

2.集群联邦本身不提供算力,它只承担多集群的协调工作,所有被管理的集群都被注册到集群联邦中。

3.集群联邦使用了单独的KubeFedCluster对象(CRD来定义)来管理集群注册信息,在该对象的定义中,不仅包含集群的注册信息,还包括集群的认证印象的引用,以明确每个集群使用的认证信息;该对象还包含各个集群的健康状态,域名等;当控制器出现异常时,直接通过集群状态信息即可获知控制器异常原因。

五.定义联邦要分发的对象是什么? --Type Configuration

1.定义了哪些kubernetes api资源要被用于联邦管理

2.如果想新增federated api,可通过kubefedctl enable 命令建立

3.比如想将ConfigMap资源通过联邦机制建立到不同的集群上时,必须先在Federation Host集群中,通过CRD创建新资源FederationConfigmap,接着再建立名称为configmaps的Type configuration(FederatedConfigMap)资源,然后描述ConfigMap要被FederatedConfigMap管理,这样KubeFed Controller 才能知道如何建立Federated资源。

六.联邦对象由什么组成?

1.template:定义Kubernetes对象的模板,它的内容为完整的Kubernetes对象。

2.placement:定义联邦对象需要被同步的目标集群,其值可以是具体的集群名单,也可是clusterSelect选择对应标签的集群。

3.overrides:不同目标集群中,对Kubernetes对象模板的本地化属性,在实际部署应用时,通常会通过调整不同集群中的配置模板,部署符合特定集群需求的应用,以更好的发挥网络,计算资源,存储等。

七.联邦如何调度?
KubeFed提供了一种自动化机制来将工作负载分散到不同的集群中,这种能够基于总副本数与集群的定义策略来将deployment或者Replicaset资源进行编排。编排策略是通过建立ReplicaSchedulingPreference(RSP)文件,再由Kubefed RSP Controller监听与撷取RSP内容将工作负载实例建立到指定的集群上。

相关推荐
自己的九又四分之三站台5 小时前
阿里云百炼
阿里云·云计算
Solar20255 小时前
机械制造业TOB企业获客软件选型指南:从挑战到解决方案的深度解析
java·大数据·服务器·架构·云计算
Exquisite.6 小时前
云原生高级前置复习
linux·云原生·云计算
翼龙云_cloud10 小时前
阿里云渠道商:如何使用弹性伸缩同时管理实例和托管实例?
服务器·阿里云·云计算
龙亘川10 小时前
技术深度解析:阿里云数据中台架构设计与实战落地,破解企业数据治理难题
阿里云·云计算
gis分享者11 小时前
Redis 集群的实现原理是什么?
数据库·redis·缓存·集群·扩容·原理·gossip
LF3_11 小时前
Centos7,KRaft模式单机模拟Kafka集群
分布式·kafka·集群·kraft
UtopiaYouth12 小时前
秋招篇—某云厂商后台开发岗二面面经(问题+答案)版
云计算·求职招聘
数智顾问12 小时前
(116页PPT)智慧工地系统工程基于物联网云计算某著名企业互联技术的建筑施工现场管理一体化平台(附下载方式)
物联网·云计算
The star"'12 小时前
Deepseek基础,模板引擎,prompt提示词,增强检索,智能机器人
python·机器人·云计算·prompt·easyui