Chinaunix首页 | 论坛 | 博客
  • 博客访问: 417065
  • 博文数量: 711
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 6030
  • 用 户 组: 普通用户
  • 注册时间: 2022-03-07 15:28
个人简介

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

文章分类

全部博文(711)

文章存档

2025年(18)

2024年(244)

2023年(247)

2022年(202)

我的朋友

分类: 云计算

2025-02-06 14:59:14

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

 

.什么是集群联邦?

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

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

  如下图,在San FranciscoNew YorkBerlin三个地域,每个地域有一个用户集群,集群内部本身是不跨地域的,网络延迟友好,etcd的性能比较  好。在此基础之上,提供一个统一的接入面,即集群联邦。包括federation api serveretcd,注意这个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,接着再建立名称为configmapsType configurationFederatedConfigMap)资源,然后描述ConfigMap要被FederatedConfigMap管理,这样KubeFed Controller 才能知道如何建立Federated资源。

 

.联邦对象由什么组成?

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

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

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

 

.联邦如何调度?

KubeFed提供了一种自动化机制来将工作负载分散到不同的集群中,这种能够基于总副本数与集群的定义策略来将deployment或者Replicaset资源进行编排。编排策略是通过建立ReplicaSchedulingPreferenceRSP)文件,再由Kubefed RSP Controller监听与撷取RSP内容将工作负载实例建立到指定的集群上。
阅读(4) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~