初探集群联邦

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

相关推荐
Sheffield3 小时前
command和shell模块到底区别在哪?
linux·云计算·ansible
DolitD7 小时前
云流技术深度剖析:国内云渲染主流技术与开源和海外厂商技术实测对比
功能测试·云原生·开源·云计算·实时云渲染
翼龙云_cloud7 小时前
阿里云渠道商:阿里云 ECS 从安全组到云防火墙的实战防护指南
安全·阿里云·云计算
YongCheng_Liang8 小时前
从零开始学虚拟化:桌面虚拟化(VDI)入门指南(架构 + 产品 + 部署)
运维·云计算
万物得其道者成8 小时前
阿里云 H5 一键登录接入实战:前后端完整实现
阿里云·云计算·状态模式
翼龙云_cloud1 天前
国际云代理商:2026年国际云注册风控升级实战指南 8 大平台无卡解决方案对比
服务器·阿里云·云计算
阿里云大数据AI技术1 天前
全模态、多引擎、一体化,阿里云DLF3.0构建Data+AI驱动的智能湖仓平台
人工智能·阿里云·云计算
摇滚侠1 天前
阿里云安装的 Redis 在什么位置,如何找到 Redis 的安装位置
redis·阿里云·云计算
m0_694845571 天前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp
ESBK20251 天前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信