初探集群联邦

本文分享自天翼云开发者社区《初探集群联邦》,作者: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内容将工作负载实例建立到指定的集群上。

相关推荐
weixin_307779133 小时前
在AWS上设计与实现个人财务助理的Web应用程序
人工智能·python·flask·云计算·aws
追风20195 小时前
阿里云 ubuntu22.04 中国区节点安装 Docker
阿里云·docker·云计算
天翼云开发者社区7 小时前
数字先锋 | 竞技科研蓝海,中南大学先“算”一步!
云计算·智算·算力建设
KubeSphere 云原生12 小时前
云原生周刊:K8s引领潮流
云计算·k8s·容器平台·kubesphere
Linux运维老纪21 小时前
K8s 分布式存储后端(K8s Distributed Storage Backend)
服务器·分布式·云原生·容器·kubernetes·云计算·运维开发
wzx_Eleven1 天前
利用腾讯云cloud studio云端免费部署deepseek-R1
人工智能·云计算·腾讯云
weixin_307779131 天前
Apache Hudi数据湖技术应用在网络打车系统中的系统架构设计、软硬件配置、软件技术栈、具体实现流程和关键代码
系统架构·云计算·aws
ALISHENGYA2 天前
并行计算、分布式计算与云计算:概念剖析与对比研究(表格对比)
云计算·并行计算
Anna_Tong2 天前
DataWorks 与传统数据治理方案相比有哪些优势?
大数据·数据库·阿里云·云计算·数据安全·dataworks