Skip to content

Kubernetes 1.28 发布,Sidecar Containers 迎面而来

2023.8.27-Kubernetes 1.28 发布,Sidecar Containers 迎面而来

文章来源

本文由 简悦 SimpRead转码, 原文地址 mp.weixin.qq.com

image-20230824071714380

**太平洋时间 2023 年 8 月 15 日,Kubernetes 1.28 正式发布。**此版本距离上版本发布时隔 4 个月,是 2023 年的第二个版本。

新版本中 release 团队跟踪了 46 个 enhancements(n.增强,增强功能)。其中 12 个功能升级为稳定版,14 个已有功能进行优化升级为 Beta,另有 20 个 Alpha 级别的功能,大多数为全新功能。1.28 版本包含了很多重要功能以及用户体验优化,接下来将详细介绍部分重要功能。

01

01 重要功能

[架构] 版本偏差策略扩展至 3 个版本

从 1.28 控制平面 / 1.25 节点开始,Kubernetes 版本偏差策略将支持的控制平面 / 节点偏差扩展到 3 个版本。这使得节点的年度次要版本升级成为可能,同时保持受支持的次要版本。

更多信息,请访问:https:- rule:"self.x <=self.maxLimit"messageExpression:'"x exceeded max limit of "+ string(self.maxLimit)'reason:"xExceededMaxLimit"fieldPath:"spec.x"

[API Machinery] KEP-3488:基于通用表达式语言 (CEL) 的准入控制 Beta

基于通用表达式语言 (CEL)的准入控制是可定制的,对于 kube-apiserver 接受到的请求,可以使用 CEL 表达式来决定是否接受或拒绝请求,可作为 Webhook 准入控制的一种替代方案。在 v1.28 中,CEL 准入控制被升级为 Beta,同时添加了一些新功能,包括但不限于:

  1. ValidatingAdmissionPolicy 类型检查现在可以正确处理 CEL 表达式中的 “authorizer” 变量。

  2. ValidatingAdmissionPolicy 支持对 messageExpression 字段进行类型检查。

  3. 在接受单个请求的过程中,ValidatingAdmissionPolicy 准入插件将对每个唯一的授权者表达式执行不超过一次的授权检查。对相同授权者表达式的所有评估将产生相同的决策。

  1. kube-controller-manager 组件新增 ValidatingAdmissionPolicy 控制器,用来对 ValidatingAdmissionPolicy 中的 CEL 表达式做类型检查,并将原因保存在状态字段中。

  2. 支持需要权限检查的准入控制用例,通过使用 “authorizer” 变量及其方法来,可以实现以下场景 (包括但不限于):

  3. 支持变量组合,可以在 ValidatingAdmissionPolicy 中定义变量,然后在定义其他变量时使用它。

  4. 新增 CEL 库函数支持对 Kubernetes 的 resource.Quantity 类型进行解析。

[API Machinery] KEP-3488:基于通用表达式语言 (CEL) 的准入 Webhook 匹配条件 Beta

将 CEL 表达式过滤器引入 Webhook,以允许请求打向 Webhook 的范围变得更小。向准入 Webhook 添加 “匹配条件”,作为定义 Webhook 范围的现有规则的扩展。matchCondition 是一个 CEL 表达式,必须评估为 true 才能将准入请求发送到 Webhook。如果 matchCondition 的计算结果为 false,则将跳过该请求的 Webhook(隐式允许)。

==ValidatingAdmissionPolicy==是一项令人兴奋的新功能,我们希望它能够大大减少对准入 Webhook 的需求,但它并不是有意尝试涵盖所有可能的用例,而是旨在改善那些无法迁移的 webhooks 的情况。

[API Machinery] KEP-4020:Kube APIServer 混合版本互操作代理 Alpha

当集群具有多个混合版本的 apiserver 组件时(例如在升级 / 降级期间或运行时配置更改和部署回滚发生时),并非每个 apiserver 都可以为每个版本的每个资源提供服务。

为了解决这个问题,过滤器被添加到聚合器的处理程序链中,聚合器将客户端代理到能够处理其请求的 apiserver 组件。

当在集群上执行升级或降级时,在一段时间内,apiserver 处于不同的版本,并且能够提供不同的内置资源集(不同的组、版本和资源都是可能的)。

[API Machinery] KEP-4008:CRD Validation Ratcheting Alpha

如果 Patch 请求没有更改任何不合法的字段,这将允许 CR 验证失败。将验证逻辑从控制器转移到前端的能力,是提高 Kubernetes 项目可用性的长期目标。

[API Machinery] KEP-4080:新增通用控制平面存储库 Alpha

使 kube-apiserver 构建在一个新的临时存储库上,该存储库使用 k8s.io/apiserver,但具有更大、精心选择的 kube-apiserver 功能子集,以便可重用。

这个过程是渐进的:我们将从一个新的存储库开始,它不会向 k8s.io/apiserver 添加任何内容,然后逐步将通用功能从 kube-apiserver 移动到它下面。新的存储库被命名为 k8s.io/generic-controlplane。

[节点] KEP-4009:设备插件 API 添加对 CDI 标准设备的支持 Alpha

CDI 提供了一种将复杂设备注入容器的标准化方法(即逻辑上需要注入多个 /dev 节点才能工作的设备)。这项新功能使插件开发人员能够利用 1.27 中添加到 CRI 的 CDIDevices 字段将 CDI 设备直接传递到支持 CDI 的运行时(其中 containerd 和 crio-o 是最新版本)。

有关 CDI 本身的更多信息,请访问 https:

版权:此文章版权归 One 所有,如有转载,请注明出处!

链接:可点击右上角分享此页面复制文章链接

上次更新时间:

最近更新