K8S 1.31 新功能: 跨核分发CPU

2024-08-30 20:36

本文主要是介绍K8S 1.31 新功能: 跨核分发CPU,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

​在Kubernetes的最新版本1.31中,一个超酷的新功能,叫做CPUManager的静态策略,里面有个选项叫做distribute-cpus-across-cores。虽然这个功能现在还在测试阶段,也就是alpha版,而且默认是藏起来的,但它的目的是让CPU的工作效率更高,特别是在那些有好多核心的处理器上,能让整个系统跑得更顺畅。

我们再来回顾一下Kubernetes的CPUManager是如何实现CPU资源分配的?

想象一下,Kubernetes的CPUManager就像个智能的管家,它负责把CPU资源分配给需要的容器。这整个过程是这样的:

  1. 资源请求:每个容器在启动时都会告诉CPUManager,它需要多少CPU资源,就像是说'嘿,我需要这么多CPU来干活'。

  2. 资源配额:CPUManager会看看集群的资源配额和限制,就像是看看家里有多少资源,然后决定能分给容器多少。

  3. CPU亲和性:有时候,容器可能更喜欢某些特定的CPU core,CPUManager会记下来,尽量满足它们的需求。

  4. 静态策略:在静态策略下,CPUManager会尝试把容器的CPU资源请求固定到特定的CPU core 上,就像是给每个容器分配一个固定的座位。

  5. 动态策略:动态策略就更灵活了,容器可以根据需要随时请求或释放CPU资源,就像是可以临时换座位。

  6. 资源调度:Kubernetes的调度器在分配容器到节点时,会看看哪个节点的CPU资源够用,确保每个容器都能得到它需要的资源。

  7. 资源监控:CPUManager还会时刻监控容器的CPU使用情况,确保它们不会超用。

  8. 资源回收:如果容器用得太多,CPUManager可能会限制它,保证其他容器也能正常运行。

通过这些办法,CPUManager确保了每个容器都能公平、高效地使用CPU资源,让整个集群的性能达到最佳。但是如果分配CPU资源的时候,总把它们都挤在一起,尽量用最少的物理core来处理的话,这样做有个问题,就是不同的CPU如果用同一个物理core,它们就得共享一些资源,比如缓存啊,执行单元这些,这就可能会影响效率。

所以呢,Kubernetes的这个新版本里就加了这个distribute-cpus-across-cores特性。即让CPUManager在分配CPU的时候,尽量把它们分散开,让每个CPU都能用上不同的物理core上。这样一来,每个CPU都有自己的空间,不用和其他CPU抢资源,运行起来自然就更顺畅,性能也能有所提升。

如果你想用这个distribute-cpus-across-cores新功能,首先得告诉Kubernetes的CPUManager用静态策略来管理CPU。这可以通过在启动kubelet的时候加个参数--cpu-manager-policy=static,或者在Kubelet的配置文件里设置cpuManagerPolicy: static来实现。

接下来,你还得告诉CPUManager用上这个分散CPU到不同核心的策略。这可以通过在配置里加上--cpu-manager-policy-options distribute-cpus-across-cores=true或者直接设置distribute-cpus-across-cores=true来做到。

不过得注意,这个新策略和另外两个选项full-pcpus-only或者distribute-cpus-across-numa是不能一起用的,别弄混了。

当然,每个新东西出来的时候,总有些限制,这个distribute-cpus-across-cores特性也不例外,尤其是它现在还在测试阶段。现在有个问题是,这个特性不能和其他一些可能会有冲突的CPU分配策略一起用。这可能会让一些需要特别资源管理的工作或者特定的部署环境用起来有点麻烦。

但是呢,别担心,社区正在努力改进这个特性。将来的更新会解决这些兼容性的问题,让这个策略能够和其他CPUManager的策略更好地配合。这样就可以打造一个既灵活又强大的CPU分配系统,能够满足各种不同的工作需求和性能目标。

最后,我们想一下,哪些场景可以使用 distribute-cpus-across-cores这个特性呢?

  1. 多核处理器优化:就像你有很多帮手,但大家都挤在一个小厨房里做饭,效率肯定不高。这个特性就是让每个容器都有自己的空间,避免大家挤在一起,提高效率。

  2. 缓存局部性:好比你的口袋里有各种工具,如果都放在一起,找起来就慢。分散开,每个工具有自己的位置,用起来就快多了。

  3. 避免资源争用:就像交通高峰期,大家都想走同一条路,结果就是堵车。这个特性就是让交通更顺畅,每个容器都有自己的路。

  4. 异构工作负载:如果你有各种各样的任务要处理,这个特性就能帮你把资源分配得更均匀,保证每个任务都能顺利进行。

  5. 性能敏感型应用:对于那些需要快速反应的应用,比如在线游戏或者股票交易,这个特性能确保它们总能拿到足够的CPU资源。

  6. 避免NUMA效应:在一些复杂的系统里,CPU和内存可能不在同一个地方,就像超市里不同区域的商品,拿起来会慢一些。这个特性就是减少这种延迟。

  7. 测试和开发:开发者可以用这个特性来试试看不同的CPU分配策略,就像是在做实验,看看哪种方法最好。

  8. 集群资源管理:管理员可以用这个特性来更好地管理资源,就像是在规划怎么分配家里的房间,让每个人都住得舒服。

总的来说,这个特性就像是个智能的资源分配器,特别适合那些需要精细控制CPU资源,让系统跑得更快更稳的场景。

这篇关于K8S 1.31 新功能: 跨核分发CPU的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1121863

相关文章

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP