问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

OpenKruise v0.10.0 版本发布:新增应用弹性拓扑管理、应用防护等能力...

发布网友 发布时间:2024-10-06 19:15

我来回答

1个回答

热心网友 时间:2024-10-11 13:48

简介:阿里云开源的云原生应用自动化管理套件、CNCF Sandbox 项目 -- OpenKruise,今天发布 v0.10.0 新版本,这也会是 OpenKruise v1.0 之前的最后一个 minor 版本。本文将带你一览 v0.10.0 的新变化,其中新增的 WorkloadSpread、PodUnavailableBudget 等大颗粒特性后续还将有转文详细介绍其设计实现原理。

作者 | 酒祝

背景

阿里云开源的云原生应用自动化管理套件、CNCF Sandbox 项目 -- OpenKruise,今天发布 v0.10.0 新版本,这也会是 OpenKruise v1.0 之前的最后一个 minor 版本。

本文将带你一览 v0.10.0 的新变化,其中新增的 WorkloadSpread、PodUnavailableBudget 等大颗粒特性后续还将有转文详细介绍其设计实现原理。

新功能概览1. WorkloadSpread:旁路的应用弹性拓扑管理能力

在应用部署运维的场景下,有着多种多样的拓扑打散以及弹性的诉求。其中最常见、最基本的,就是按某种或几种拓扑水平打散,比如:

这些基本的诉求,通过 Kubernetes 原生提供的 pod affinity、topology spread constraints 等能力目前都能够满足了。但在实际的生产场景下,还有着太多更加复杂的分区与弹性需求,以下举一些实际的例子:

对于这些例子,过去一般只能将一个应用拆分为多个 Workload(比如 Deployment)来部署,才能解决应用在不同拓扑下采用不同比例数量、扩缩容优先级、资源感知、弹性选择等场景的基本问题,但还是需要 PaaS 层深度定制化,来支持对一个应用多个 Workload 的精细化管理。

针对这些问题,在 Kruise v0.10.0 版本中新增了 WorkloadSpread 资源,目前它支持配合 Deployment、ReplicaSet、CloneSet 这些 Workload 类型,来管理它们下属 Pod 的分区与弹性拓扑。

以下是一个简化的例子:

创建这个 WorkloadSpread 可以通过 targetRef 关联到一个 Workload 对象上,然后这个 Workload 在扩容 pod 的过程中,Pod 会被 Kruise 按上述策略注入对应的拓扑规则。这是一种旁路的注入和管理方式,本身不会干涉 Workload 对 Pod 的扩缩容、发布管理。

注意:WorkloadSpread 对 Pod 缩容的优先级控制是通过 Pod Deletion Cost 来实现的:

使用 WorkloadSpread 功能,需要在 安装/升级 Kruise v0.10.0 的时候打开 WorkloadSpread 这个 feature-gate。

上述例子仅为最简化配置,更多使用说明请参考 官网文档,具体的实现原理我们将会在后续的文章中与大家分享。

2. PodUnavailableBudget:应用可用性防护

在诸多 Voluntary Disruption 场景中 Kubernetes 原生提供的 Pod Disruption Budget(PDB) 通过限制同时中断的 Pod 数量,来保证应用的高可用性。

但还有很多场景中,即便有 PDB 防护依然将会导致业务中断、服务降级,比如:

这其实很好理解 -- PDB 只能防控通过 Eviction API 来触发的 Pod 驱逐(例如 kubectl drain驱逐node上面的所有Pod),但是对于 Pod 删除、原地升级 等很多操作是无法防护的。

在 Kruise v0.10.0 版本中新增的 PodUnavailableBudget(PUB)功能,则是对原生 PDB 的强化扩展。它包含了 PDB 自身的能力,并在此基础上增加了对更多 Voluntary Disruption 操作的防护,包括但不限于 Pod 删除、原地升级等。

使用 PodUnavailableBudget 功能,需要在 安装/升级 Kruise v0.10.0 的时候打开feature-gate(两个可以选择打开一个,也可以都打开):

更多使用说明请参考 官网文档,具体的实现原理我们将会在后续的文章中与大家分享。

3. CloneSet 支持按拓扑规则缩容

在 CloneSet 缩容(调小 replicas 数量)的时候,选择哪些 Pod 删除是有一套固定算法排序的:

其中,“4” 是在 Kruise v0.9.0 中开始提供的特性,用于支持用户指定删除顺序(WorkloadSpread 就是利用这个功能实现缩容优先级);而 “5” 则是当前 v0.10.0 提供的特性,即在缩容的时候会参考应用的拓扑打散来排序。

4. Advanced StatefulSet 支持流式扩容

为了避免在一个新 Advanced StatefulSet 创建后有大量失败的 pod 被创建出来,从 Kruise v0.10.0 版本开始引入了在 scale strategy 中的 maxUnavailable 策略:

当这个字段被设置之后,Advanced StatefulSet 会保证创建 pod 之后不可用 pod 数量不超过这个限制值。

比如说,上面这个 StatefulSet 一开始只会一次性创建 10 个 pod。在此之后,每当一个 pod 变为 running、ready 状态后,才会再创建一个新 pod 出来。

注意:这个功能只允许在 podManagementPolicy 是 `Parallel` 的 StatefulSet 中使用。

5. 其他

详见 ChangeLog 文档。

最后

本次的 v0.10.0 会是 OpenKruise v1.0 之前的最后一个 minor 版本,在年底之前 Kruise 将会发布首个 v1.0 大版本,敬请期待!

另外,OpenKruise 社区开始组织定期的双周会,从本周四(9月9日)晚上19:00( GMT+8 Asia/Shanghai)首次开始,本次周会将会讲解 v0.10.0 新版本的特性以及 demo 演示。参与方式:

更多内容

OpenKruise

github.com/openkruise/k...

topology spread constraints

kubernetes.io/docs/conc...

Pod Deletion Cost

kubernetes.io/docs/refe...

官网文档

openkruise.io/zh-cn/doc...

ChangeLog 文档

github.com/openkruise/k...

Zoom 会议链接

us02web.zoom.us/j/87059...

Zoom 记录文档

shimo.im/docs/gXqmeQOYB...

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
瓷砖选购的三大误区 瓷砖的6大常见误区以及5大选购要点 瓷砖品牌推荐 瓷砖选购误区 瓷砖选购七大误区 突破表面防线 买优质产品! ...最好民办大学排名,南昌理工学院第一,江西科技学院第二 二本公认最好综合大学江西 ...江西工程学院,江西应用科技学院。这4个大学中哪个大学更好。_百度知... ...江西理工大学应用科学学院、江西科技学院、南昌理工 ...江西工程学院,江西应用科技学院。这4个大学中哪个大学更好 湖北教师职称有3010政策吗 云原生|什么是HPA和PDB? K8s调度之污点与容忍 K8S原理架构与实战(基础篇) 带你搞懂 Kubernetes Pod 如何获取 IP 地址 SDCC 2018尼尔机械纪元A2小姐姐手办赏介绍_SDCC 2018尼尔机械纪元A2小姐... 你为什么喜欢尼尔:机械纪元中的A2? ...后都带了一个白色的麦,很小,好像夹在头发上,这是甚么啊 尼尔新结局9S成反派?2P尸体中爬出无数人偶化为合成巨人! ...时候为什么只有伴奏的声音很大清晰而人声很空旷都听不清_百度... 东芝笔记本电脑听歌的时候,伴奏声音很大,歌词听不清。怎么办... 音乐伴奏很响,歌声很轻怎么办 ...听歌,歌声的伴奏声音很大歌声却很小都听不清歌词,换耳机也不好用前 ... sysbench工具 天健正信会计师事务所待遇如何? ...老是蓝屏 有时侯长时间不打字,如果一碰键盘就蓝屏,蓝色的屏幕上全是... 概率和方程的故事图书目录 煤矿安全生产监控系统可靠性研究图书目录 数学学科新知识应用与中小学学科教学图书目录 不确定性支持向量机图书目录 网银都有什么用 买基金为什么要定投 基金为什么都定投 Schedule|轻量化的定时任务模块 定时任务中的 Timer的schedule和scheduleAtFixedRate方法的区别?_百度... 海尔bcd 288wsl显示屏led一直亮.不熄灭 海尔casarte冰箱BCD-288wsL. 上面不制冷中下层正常,主板的哪个集成块坏... K8S学习指南(16)-k8s核心对象Job k8s 知识- 模块化方式认识Statefulset和Deployment 云原生之 K8S 系列:如何创建 Kubernetes job 和 Cronjobs 入门指南_百度... 如何简单愉快地安装win11系统——让每个人都学会装系统 家庭版霸气牛肉堡做法大全 手机进水后 可以开机 进入开机键音量键模式可以操作(画面完整) 但是_百... 黑暗料理王佛系北极贝怎么做 6S手机进水,屏幕花屏,开机键音量键-失灵,屏幕没反应失灵,静音键音量键... 《遗失的世界》攻略:第4关全面解析,探秘未知领域的冒险之旅! 造梦西游4九尾天狐易爆点在哪 镣钮释义 钻石画和十字绣哪个贵 从无锡市汽车站打的到湖滨中学要多久和多少钱? 无锡中央汽车站打的去无锡二院需要多少钱??