云容器引擎 CCE_AUTOPILOT集群-Kubernetes 1.28版本说明:新增特性及特性增强
新增特性及特性增强
社区特性的Alpha阶段默认禁用、Beta阶段一般默认启用、GA阶段将一直默认启用,且不能禁用(会在后续版本中删除这个开关功能)。CCE对新特性的策略与社区保持一致。
- 版本偏差策略扩展至3个版本
从1.28控制平面/1.25工作节点开始,Kubernetes版本偏差策略将支持的控制平面/工作节点偏差扩展到3个版本。 这使得节点的年度次要版本升级成为可能,同时保持受支持的次要版本。更多细节请参考版本偏差策略。
- 可追溯的默认StorageClass进阶至GA
在Kubernetes 1.28版本,可追溯默认StorageClass赋值现已进阶至GA。 这项增强特性极大地改进了默认的StorageClasses为PersistentVolumeClaim(PVC)赋值的方式。
PersistentVolume(PV)控制器已修改为:当未设置storageClassName时,自动向任何未绑定的PersistentVolumeClaim分配一个默认的StorageClass。此外,API 服务器中的PersistentVolumeClaim准入验证机制也已调整为允许将值从未设置状态更改为实际的StorageClass名称。更多使用细节请参考默认StorageClass赋值。
- 原生边车容器(Alpha)
在Kubernetes 1.28版本,原生边车容器以Alpha版本正式发布。其在Init容器中添加了一个新的restartPolicy字段, 该字段在SidecarContainers特性门控启用时可用。需要注意的是,原生边车容器目前仍有些问题需要解决,因此K8S社区建议仅在Alpha阶段的短期测试集群中使用边车功能。 更多使用细节请参考原生边车容器。
- 混合版本代理(Alpha)
在Kubernetes 1.28版本,发布了用于改进集群安全升级的新机制(混合版本代理)。该特性为Alpha特性。当集群进行升级时,集群中不同版本的kube-apiserver为不同的内置资源集(组、版本、资源)提供服务。在这种情况下资源请求如果由任一可用的apiserver提供服务,请求可能会到达无法解析此请求资源的apiserver中,导致请求失败。该特性能解决该问题。(主要注意的是,CCE本身提供的升级能力即可做到无损升级,因此不存在该特性涉及的场景)。更多使用细节请参考混合版本代理。
- 节点非体面关闭特性达到GA
在Kubernetes 1.28版本,节点非体面关闭特性达到GA阶段。当一个节点被关闭但没有被Kubelet的Node Shutdown Manager检测到时,StatefulSet的Pod将会停留在终止状态,并且不能移动到新运行的节点上。当用户确认该节点已经处于不可恢复的情况下,可以手动为Node打上out-of-service的污点,以使得该节点上的StatefulSet的Pod和VolumeAttachments被强制删除,并在健康的Node上创建相应的Pod。更多使用细节请参考节点非体面关闭。
- NodeSwap特性达到Beta
在Kubernetes 1.28版本,NodeSwap能力进阶至Beta版本。目前仍然处于默认关闭状态,需要使用NodeSwap门控打开。该特性可以为Linux节点上运行的Kubernetes工作负载逐个节点地配置内存交换。需要注意的是,该特性虽然进阶至Beta特性,但仍然存在一些需要增强的问题和安全风险。更多使用细节请参考NodeSwap特性。
- Job相关特性
在Kubernetes 1.28版本,增加了Pod更换策略和基于带索引Job的回退限制两个alpha特性。
- Pod更换策略
默认情况下,当Pod进入终止(Terminating)状态(例如由于抢占或驱逐机制)时,Kubernetes会立即创建一个替换的Pod,因此这时会有两个Pod同时运行。
在Kubernetes 1.28版本中可以使用JobPodReplacementPolicy 来启用该特性。可以在Job的Spec中定义podReplacementPolicy,目前仅可设置为Failed。在设置为Failed之后,Pod仅在达到Failed阶段时才会被替换,而不是在它们处于终止过程中(Terminating)时被替换。此外,您可以检查Job的.status.termination字段。该字段的值表示终止过程中的Job所关联的Pod数量。
- 带索引Job的回退限制
默认情况下,带索引的Job(Indexed Job)的 Pod 失败情况会被记录下来,受.spec.backoffLimit字段所设置的全局重试次数限制。这意味着,如果存在某个索引值的Pod一直持续失败,则Pod会被重新启动,直到重试次数达到限制值。一旦达到限制值,整个Job将被标记为失败,并且对应某些索引的Pod甚至可能从不曾被启动。
在Kubernetes 1.28版本中,可以通过启用集群的JobBackoffLimitPerIndex特性门控来启用此特性。开启之后,允许在创建带索引的Job(Indexed Job)时指定.spec.backoffLimitPerIndex字段。当某个Job的失败次数超过设定的上限时,将不再进行重试。
- Pod更换策略
- CEL相关特性
在Kubernetes 1.28版本,CEL能力进行了相应的增强。
- CRD使用CEL进行Validate的特性进阶至Beta
该特性在v1.25版本就已经升级为Beta版本。通过将CEL表达式直接集成在CRD中,可以使开发者在不使用Webhook的情况下解决大部分对CR实例进行验证的用例。在未来的版本,将继续扩展CEL表达式的功能,以支持默认值和 CRD转换。
- 基于CEL的准入控制进阶至Beta
基于通用表达式语言 (CEL) 的准入控制是可定制的,对于kube-apiserver接受到的请求,可以使用CEL表达式来决定是否接受或拒绝请求,可作为Webhook准入控制的一种替代方案。在 v1.28 中,CEL准入控制被升级为Beta,同时添加了一些新功能,包括但不限于:
- ValidatingAdmissionPolicy类型检查现在可以正确处理CEL表达式中的“authorizer”变量。
- ValidatingAdmissionPolicy支持对messageExpression字段进行类型检查。
- kube-controller-manager组件新增ValidatingAdmissionPolicy控制器,用来对ValidatingAdmissionPolicy中的CEL表达式做类型检查,并将原因保存在状态字段中。
- 支持变量组合,可以在ValidatingAdmissionPolicy中定义变量,然后在定义其他变量时使用它。
- 新增CEL库函数支持对Kubernetes的resource.Quantity类型进行解析。
- CRD使用CEL进行Validate的特性进阶至Beta
- 其它特性说明
- 在Kubernetes 1.28版本,ServiceNodePortStaticSubrange 特性为beta,允许保留静态端口范围,避免与动态分配端口冲突。具体细节请参考为NodePort Service分配端口时避免冲突。
- 在Kubernetes 1.28版本,增加了alpha特性ConsistentListFromCache,允许kube-apiserver从缓存中提供一致性列表,Get和List请求可以从缓存中读取数据,而不需要从etcd中获取。
- 在Kubernetes 1.28版本,kubelet能够配置drop-in目录(alpha特性)。该特性允许向kubelet添加对“--config-dir”标志的支持,以允许用户指定一个插入目录,该目录将覆盖位于/etc/kubernetes/kubelet.conf位置的Kubelet的配置。
- 在Kubernetes 1.28版本,ExpandedDNSConfig升级至GA,默认会被打开。该参数用于允许扩展DNS的配置。
- 在Kubernetes 1.28版本,提供Alpha特性CRD Validation Ratcheting。该特性允许Patch或者Update请求没有更改任何不合法的字段,将允许CR验证失败。
- 在Kubernetes 1.28版本,kube-controller-manager添加了--concurrent-cron-job-syncs flag用来设置cron job controller的workers数。
- 容器云平台_云容器是什么_云应用容器引擎
- CCE云容器引擎_容器云平台架构_容器云平台技术
- 分布式云原生容器舰队管理_华为云分布式云原生_华为云UCS容器舰队
- Serverless 容器_什么是CCE Autopilot集群_CCE Autopilot
- 华为云CCE_华为云容器引擎CCE_容器混合云
- GaussDB(for MySQL)重点特性介绍_升级Proxy内核版本_重启Proxy实例
- CCE云容器_什么是云容器_云容器部署
- MapReduce服务_什么是MapReduce服务_什么是HBase
- 应用部署_应用部署支持什么语言_应用部署的优势-华为云
- 云原生是什么_华为云分布式云原生如何收费_分布式云原生价格