Karmada调度器

调度器就像一个发动机,如果没有了发动机输入动力,是无法正常运行的。就像 Kubernetes 的调度器,它会负责根据节点的资源状态、Pod 的运行状态,判断 Pod 是调度到怎样的集群节点上去。对于 Karmada 这样的多云能力的调度器来说,调度能力也是大家非常关注的一个能力。

主要体现在,能不能通过调度的能力,将多集群的资源负载,控制在相对均衡的水位线,以及需要被调度的资源对象,以怎样的方式被调度到不同的集群上。同时,调度器的可扩展能力,也是非常重要的,正常情况下只要调度器是足够成熟的,一般的场景也都会满足了,但是也会有一些是无法满足的,就像 Kubernetes 场景下的支持 GPU 的能力,大多数 GPU 的尝试都会扩展 Kubernetes 的调度能力。

那接下来,我们就来看看 Karmada 的调度能力。

一、Karmada 调度能力

Karmada 的调度能力主要包含两个方面,一个是调度策略,一个是调度时机。调度策略是告诉使用者,调度器有哪些调度配置参数,可以提供使用和配置。调度时机是调度器自身根据调度策略,决定在什么样的情况下,以那种调度方式处理调度策略,使用者无需关心。

二、调度策略

1. Depulicated

Depulicated:调度到所有集群的副本数保持和创建的 Deployment 副本数一致,最终的副本总数就是 Deployment 的副本数 * 集群数。这种调度的方式,没有任何动态计算集群可用副本数的逻辑在里面,也就是不会涉及 karmada-estimator 的调用。

2. Divided

Divided:顾名思义就是拆分的意思,作用和 Duplicated 相反。对于 Divided 类型的,其中又分为 weighted (按权重) 和 Aggregated 策略。按权重分的又分为静态权重和动态权重。使用这种副本分配策略,会将创建 Deployment 的副本数作为总的副本数,根据策略的选择,拆分不同个数的副本到不同的集群上。

3. Aggregated

Aggregated:这是一种聚合调度策略,特性是调度的时候尽量紧凑一点。举例如果有 5 个集群,同时第一个集群已经有足够的资源,可以运行所有的副本数,那就会把所有的 Pod 都调度在第一个集群上。因此,如果第一个集群不够,就会放一部分到第二个集群,但是剩下的集群不会有副本调度过去。扩缩容的时候,特性也是一致的。这种调度策略会导致所有的集群的资源使用不均衡。

4. Static Weight

Static Weight:静态权重的分配副本的方式是需要在 PropagationPolicy 的 replicaScheduling 的部分设置相关策略,参见《云原生多云应用利器-- Karmada 总览篇》的 PropagationPolicy 的概念部分的 sample 的 yaml。

权重的意思就是,根据所有设置的权重求和,得到权重和,然后每一个权重/权重和,也就是副本的分配比例,副本总数 * 对应的权重比例的个数,就是对应权重应该需要被分配的副本数。注意这里会出现分配完之后,还有一点副本数没有被分配掉的情况,这个时候就是循环所有符合调度的集群,每一个集群一次分配一个副本的方式,直到所有剩下的副本数被分配完。

5. Dynamic Weight

Dynamic Weight:动态权重指的是,需要根据 karmada-estimator 计算的所有集群实时的可调度最大副本数,作为计算的参考。

举例,如有一个 Deployment 的副本数是 8,符合条件的集群有 2 个,第一个集群可调度的最大副本数是 20 个,第二个可调度的最大副本数是 6。那接下来动态权重的权重和就是 20+6=26。

第一个集群的权重就是 20,第二个集群的权重就是 6,第一个集群应该被分配的副本数就是 8 * (20/26)。第二个集群应该分配到的副本数就是 8 * (6/26)。

注意这里会出现分配完之后,还有一点副本数没有被分配掉的情况,这个时候就是循环所有符合调度的集群,每一个集群一次分配一个副本的方式,直到所有剩下的副本数被分配完。

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

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

相关文章

APP安全加固怎么做?加固技术、加固方法、加固方案

​ 前面的文章中我们为大家介绍了移动应用安全检测的测试依据、测试方法、和测试内容,本文我们着重分享App安全加固的相关内容。 ​ (安全检测内容) 通过前面的文章我们知道了app安全检测要去检测哪些内容,发现问题后我们如何去修…

Flutter应用-使用sqflite升级数据库

文章目录 问题描述具体做法代码示例更多条件限制升级 数据库迁移和备份简介数据库迁移数据库备份 问题描述 使用fluttter开发的应用程序发布后,发现数据库有些设计不合理。如何来更新数据库呢? 使用sqflite来处理数据库,但是第一版软件发布后…

竞赛选题 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &#x…

k8s自定义Endpoint实现内部pod访问外部应用

自定义endpoint实现内部pod访问外部应用 endpoint除了可以暴露pod的IP和端口还可以代理到外部的ip和端口 使用场景 公司业务还还没有完成上云, 一部分云原生的,一部分是实体的 业务上云期间逐步实现上云,保证各个模块之间的解耦性 比如使…

【Android】设置全局标题栏

序言 在做项目的时候,有时候需要一个全局统一的标题栏,保证项目风格的统一,但是如果在每个activity上面都写一遍这个标题栏就很麻烦了,我们经常用的方法就是写个基类Activity,然后当某个Activity需要这个统一的标题栏…

ES Kibana 安装

ES & Kibana 本文基于Docker安装部署使用 Kibana的版本和ElasticSearch的版本,以及IK分词器的版本一一对应 Kibana 安装 安装Kibana # 创建网络 [rootiZ2zeg7mctvft5renx1qvbZ ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway …

2023年软件安装管家目录最新

软件目录 ①【电脑办公】电脑系统(直接安装)Win7Win8Win10OfficeOffice激活office2003office2007office2010office2013office2016office2019office365office2021wps2021Projectproject2007project2010project2016project2019project2013project2021Visio…

为React Ant-Design Table增加字段设置 | 京东云技术团队

最近做的几个项目经常遇到这样的需求,要在表格上增加一个自定义表格字段设置的功能。就是用户可以自己控制那些列需要展示。 在几个项目里都实现了一遍,每个项目的需求又都有点儿不一样,迭代了很多版,所以抽时间把这个功能封装了…

TCP-Modbus通信过程解析与实例演示

大家好!今天我将简要介绍一下如何使用TCP-Modbus方式与信捷PLC(XD5E型号)进行通讯,并演示整个过程。 TCP-Modbus通信过程解析与实例演示 首先,我们需要在PLC软件中设置相应的IP地址。PLC作为服务器,我们将其…

【2015年数据结构真题】

用单链表保存m个整数&#xff0c;结点的结构为 [data] [link]&#xff0c;且|data|<n(n为正整数)。现要求设计一个时问复杂度尽可能高效的算法&#xff0c;对于链表中 data 的绝对值相等的结点&#xff0c;仅保留第一次出现的结点而删除其余绝对值相等的结点。例如&#xff…

html在线生成二维码(附源码)

文章目录 1.设计来源1.1 主界面1.2 美化功能 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/134458927 html二维码生成&#xff08;附源码&#xff09;&#xff0c;生成二…

UniPro提高集成能力 让客户专注于交付价值

一千个哈姆莱特就有一千个读者&#xff0c;一千个开发团队&#xff0c;也会有各不相同的软件工具和工作流程。工具与工具之间&#xff0c;功能上的割裂亦或重叠&#xff0c;都会给企业和团队的协作带来阻塞&#xff0c;结果就会导致团队之间各自为战、信息孤岛的形成以及资源的…

WPF下实现拖动任意地方都可以拖动窗口

首先在xaml中添加事件 <Window PreviewMouseLeftButtonDown"Window_PreviewMouseLeftButtonDown"PreviewMouseMove"Window_PreviewMouseMove"PreviewMouseLeftButtonUp"Window_PreviewMouseLeftButtonUp"/>然后脚本输入 Point _pressedP…

vscode设置latex

vscode配置latex 1.安装vscode,并添加环境变量路径 2.安装latex,bin文件夹添加到环境变量路径 3.vscode安装插件 4.vscode->文件->首选项->显示配置内容->setting.json文件&#xff0c;查看其位置目录&#xff0c;通过我的电脑找到此文件&#xff08;不要使用v…

Kafka简单汇总

Kafka的结构图 多个Parttion共同组成这个topic的所有消息。每个consumer都属于一个consumer group&#xff0c;每条消息只能被consumer group中的一个Consumer消费&#xff0c; 但可以被多个consumer group消费。即组间数据是共享的&#xff0c;组内数据是竞争的。二、消费模型…

WPF程序给按钮增加不同状态的图片

首先我们在资源里添加几个图片&#xff0c;Up&#xff0c;Over和Down状态。 然后我们创建一个Style。默认我们的背景设置成Up 然后在Triggers里添加代码&#xff0c;当Property&#xff1a;IsMouseOver为True的时候更换成Over&#xff1b;当Property&#xff1a;IsPressed为Tr…

RabbitMQ的幂等性、优先级队列和惰性队列

文章目录 一、幂等性1、概念2、消息重复消费3、解决思路4、消费端的幂等性保障5、唯一 ID指纹码机制6、Redis 原子性 二、优先级队列1、使用场景2、如何添加3、实战 三、惰性队列1、使用场景2、两种模式3、内存开销对比 总结 一、幂等性 1、概念 用户对于同一操作发起的一次请…

【论文阅读】(VAE-GAN)Autoencoding beyond pixels using a learned similarity metric

论文地址;[1512.09300] Autoencoding beyond pixels using a learned similarity metric (arxiv.org) / 一、Introduction 主要讲了深度学习中生成模型存在的问题&#xff0c;即常用的相似度度量方式&#xff08;使用元素误差度量&#xff09;对于学习良好的生成模型存在一定…

【教学类-36】八等分格子-A4竖版-4条(制作皇冠、戒指、中班)

作品展示&#xff1a; 背景需求&#xff1a; 最近在大四班孩子中间普及铅画纸制作“方盒”的活动&#xff0c;目前进展到使用三条8等分的长条纸&#xff0c;制作一个“坚硬的、不漏底”的方盒。 实验后&#xff0c;我想试试如果缩小纸条长宽&#xff0c;是不是可以做“迷你”纸…