写点什么

初探集群联邦

  • 2025-02-06
    北京
  • 本文字数:1669 字

    阅读完需:约 5 分钟

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

用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
初探集群联邦_云计算_天翼云开发者社区_InfoQ写作社区