初探集群联邦

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/879662.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek开源o1击毙OpenAI,强化学习惊现「啊哈」时刻!网友:AGI来了

DeepSeek开源o1击毙OpenAI,强化学习惊现「啊哈」时刻!网友:AGI来了 AI生成摘要摘要 中国版o1刷屏全网。DeepSeek R1成为世界首个能与o1比肩的开源模型,成功秘诀竟是强化学习,不用监督微调。AI大佬们一致认为,这就是AlphaGo时刻。自由讨论详情 一觉醒来,AGI就实现了?!…

多种路径规划方案,满足应用个性化导航需求

在快节奏的都市生活中,路径规划已成为日常出行的核心环节。用户无论前往何地,都期望能够迅速获取所有可能的路线,并根据预估的出行时间,轻松挑选出最适合自己的出行方案。在现代生活中,路径规划的需求无处不在,从导航应用中的个性化路线推荐,到外卖服务中的高效配送规划…

npm ERR missing script dev

没有dev脚本 看一下你的package.json 文件里面是哪个脚本 执行 npm run serve

canvas去除图片空白部分,图片裁剪

canvas去除图片空白部分实现图片的缩小,可用于vue-signature-pad 签名实现签名裁剪,图片裁剪 电子签名连接 https://blog.csdn.net/Shids_/article/details/135695601<!DOCTYPE html> <html><head><meta charset="utf-8" /><meta name=…

Avalonia系列文章之控件简介

对于GUI(图形用户页面)程序来说,控件是创建用户页面的基本构建块,不同的控件代表不同的功能,如按钮,文本框,滑块等。在Avalonia UI中,了解控件的使用及其特性对于创建应用程序至关重要。对于GUI(图形用户页面)程序来说,控件是创建用户页面的基本构建块,不同的控件代表不…

DeepSeek+AnythingLLM打造自己大模型知识库

有些用户或是专家在项目建设中提出来要提炼工艺库、模型库、算法库等知识库,可以试着让deepseek成为每个角色的助手,例如工艺的、信息化的、设备的、电气的等角色,让deepseek成为自己,再不断的迭代它。deepseek扮演AI助手的角色,应用越来越发挥出来应有的价值。 DeepSeek+…

基于 AI 的代码审计工具,支持多种语言,支持DeepSeek-R1,ChatGPT-4o等多种大模型。

免责声明 仅供安全研究与学习之用,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不承担任何法律及连带责任。工具介绍基于 AI 的代码安全审计工具,支持多种编程语言的代码分析,可以帮助开发者快速发现代码中的潜在安全漏洞。支持DeepSeek-R1,ChatGPT-…

GEO SFxxxx系列振弦式应变计 混凝土结构监测应变和温度

GEO SFxxxx系列振弦式应变计 混凝土结构监测应变和温度振弦式应变计被广泛用于长期埋设在水工建筑物或其他混凝土结构物内部,如梁、柱、桩基、挡土墙、衬砌、墩以及基岩等,用于测量埋设点的线性变形(应变)和应力。同时,它也可以同时测量埋设点的温度。 GEO SFxxxx系列振弦…

部署mysql

一、环境名称 备注操作命令对象 Docker 版本26.1.3远程操作系统 CentOS 7.9 64位远程管理工具 FinalShell 版本4.3.11安装软件名称 MySQL 版本8.3.0二、拉取镜像 2.1 查找 Docker Hub 上的 MySQL 镜像 docker search mysql2.2 拉取MySQL镜像 由于我本地用的是8.3.0的,所以服务…

虚拟机安装麒麟操作系统

1.新建虚拟机 参考地址:https://blog.csdn.net/weixin_52799373/article/details/144770961

7 个丑陋的利基网站,每月赚超过5000美元

​这张图由作者使用Ideogram制作。很难相信,但一些1999年的老旧丑陋网站依然存在。令人惊讶的是,它们的表现非常好。 这些网站有闪烁的文字、鲜艳的颜色和笨重的设计,让今天的网页设计师都感到不舒服。 但你猜怎么着?这些“丑陋”的网站正在为它们的拥有者赚取大量的钱。 现…