Kubernetes 1.27 正式发布


Kubernetes 1.27 正式发布,这是 2023 年的第一个版本。这个版本包括 60 项增强功能。其中 18 项增强功能进入 Alpha、29 项进入 Beta,还有 13 项升级为 Stable 稳定版。

主题和标识

Kubernetes v1.27 的主题是 Chill Vibes

新内容

冻结k8s.gcr.io镜像仓库

用 registry.k8s.io 替换旧的镜像仓库 k8s.gcr.io,后者已经普遍可用了几个月。Kubernetes 项目创建并运行 registry.k8s.io 镜像仓库,完全由社区控制。这意味着旧的镜像仓库 k8s.gcr.io 将被冻结,并且不会再发布 Kubernetes 和相关子项目的镜像到旧的镜像仓库。

SeccompDefault 升级到稳定版

要使用默认的 seccomp 配置文件,你必须在每个要使用它的节点上使用 --seccomp-default 命令行标志运行 kubelet。如果启用,kubelet 将默认使用 RuntimeDefault seccomp 配置文件,该配置文件由容器运行时定义,而不是使用 Unconfined 模式。默认配置文件旨在提供强大的安全默认值,同时保留工作负载的功能。容器运行时及其发布版本之间的默认配置文件可能不同。

Jobs 可变调度指令 GA

这是在 v1.22 中引入的,开始是作为 beta 级别,现在已经稳定了。在大多数情况下,并行作业会希望 Pod 在约束条件下运行,例如所有 Pod 在同一区域内,或者所有 Pod 都在 GPU model x 或 y 上运行,而不是混合运行。 suspend 字段是实现这些语义的第一步。 suspend 允许自定义队列控制器决定何时启动作业。但是,一旦作业被取消挂起,自定义队列控制器就无法影响作业的 Pod 实际放置位置。

新的功能允许在作业开始之前更新 Jobs 的调度指令,这使得自定义队列控制器能够影响 Pod 的放置,同时将实际的 pod-to-node 的分配卸载给 kube-scheduler。这仅适用于以前从未恢复过的已挂起 Jobs。

DownwardAPIHugePages 升级为稳定版

在 Kubernetes v1.20 中,对requests.hugepages-<pagesize>limits.hugepages-<pagesize>的支持被添加到 downward API 中,以便与其他资源如 CPU、内存等一致。这个功能在这个版本中毕业,升级到到稳定版。

Pod 调度进入测试阶段

创建后,Pods 可以进行调度了。Kubernetes 调度器会尽力找到节点来放置所有待定的 Pods。然而,在实际情况中,一些 Pods 可能会长时间处于缺少必要资源的状态。这些 Pod 实际上是以不必要的方式搅乱了调度器(以及下游集成器,如 Cluster Autoscaler)。

通过指定/删除 Pod 的 .spec.schedulingGates ,可以控制 Pod 何时可以被考虑进行调度。

通过 Kubernetes API 访问 Node 日志

该功能帮助集群管理员通过允许他们查询服务日志来调试运行在节点上的服务的问题。要使用此功能,请确保在该节点上启用了 NodeLogQuery ,且 kubelet 配置选项 enableSystemLogHandlerenableSystemLogQuery 均设置为 true。在 Linux 上,我们假定服务日志可通过 journald 获得。在 Windows 上,我们假定服务日志可在应用程序日志提供程序中获得。你还可以从 Linux 和 Windows 上的 /var/log/C:\\var\\log 目录中获取日志。

ReadWriteOncePod PersistentVolume 进入测试阶段

Kubernetes v1.22 引入了一种新的访问模式 ReadWriteOncePod,用于 PersistentVolumes(PV)和 PersistentVolumeClaims(PVC)。此访问模式使你能够将卷访问限制为集群中的单个 Pod,确保仅有一个 Pod 可以同时写入该卷。这对于需要对存储进行 single-writer 的有状态工作负载特别有用。

ReadWriteOncePod beta 增加了对使用 ReadWriteOncePod PVC 的 Pod 的调度程序抢占支持。调度程序抢占允许更高优先级的 Pod 抢占低优先级的 Pod。

滚动升级后遵循 PodTopologySpread

matchLabelKeys 是一个 Pod 标签键的列表。这些键用于从 Pod 标签中查找值。这些键值标签与 labelSelector 进行 AND 运算,以选择现有 Pod 组,计算传入 Pod 的分布。在 Pod 标签中不存在的键将被忽略。空列表表示仅匹配 labelSelector

使用 matchLabelKeys ,用户无需在不同版本之间更新 pod.spec 。控制器只需为不同版本的同一 label 键设置不同的值。调度程序将根据 matchLabelKeys 自动假定这些值。

使用挂载加速 SELinux 卷重新标记

在此版本中,应用于 Pod 使用的卷的 SELinux 标签的方式将升级为 beta 版本。该功能通过挂载具有正确 SELinux 标签的卷来加快容器启动速度,而不是递归更改卷上的每个文件。支持 SELinux 的 Linux 内核允许在第一次挂载卷的时候使用 -o context= 挂载选项在整个卷上设置 SELinux 标签,从而使所有文件在恒定时间内分配给定标签,而无需递归地遍历整个卷。

VolumeManager 重构进入测试阶段

这是一个卷管理器重构,允许 kubelet 在启动期间填充有关现有卷如何挂载的其他信息。一般来说,这使得卷清理更加稳健。如果在节点上启用 NewVolumeManagerReconstruction,你将在 kubelet 启动期间获得已挂载卷的增强发现功能。

在 Kubernetes v1.25 之前,kubelet 在启动期间发现已挂载的卷时使用了不同的默认行为。如果你禁用此功能(默认情况下启用),则选择传统的发现行为。

更多详情可查看:https://kubernetes.io/blog/2023/04/11/kubernetes-v1-27-release/


相關推薦

2023-11-10

s 是谷歌和游戏厂商育碧联合开发的游戏服务器,用于在 Kubernetes 上托管、运行和扩展专用游戏服务器。Agones v1.36.0 现已发布,具体更新内容如下: 添加了对 Kubernetes 1.28 的支持,并停止了对 1.25 的支持,以使支持矩阵达到 1

2023-07-18

编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。 本文重点介绍 KCL v0.5.0 版本

2022-10-29

Deno 1.27 已正式发布。 主要变化 改进语言服务器 /IDE 改进 npm 兼容性 新增navigator.language Web API 改进 deno task 升级检查器 修改 Deno APIs 升级 deno lint V8 10.8 改进 Node.js 兼容性 修改标准库 API

2022-04-15

4月14日,推特用户 @Matt Greensmith 晒出一张高达 1.27 亿美金的 GitHub Actions 天价账单,并 @GitHub 质问到底咋回事。 GitHub Action 是 GitHub 于 2018 年推出的一个 CI\CD 服务。该账单显示,Matt 在一个月内使用了大约 160 亿分钟 Actions

2022-12-12

Kubernetes 1.26 已正式发布。此版本总共包含 37 项功能变化,其中:11 项增强功能正在升级到 stable 阶段,10 项增强功能正在升级到 beta 阶段,16 项增强功能正在进入 alpha 阶段,此外还有 12 项功能已被标记为弃用或删除。 Kubernetes

2022-08-25

Kubernetes 1.25 已正式发布。 1.25 总共包含 40 项功能变化,其中: 15 项增强功能正在进入 alpha 阶段 10 项增强功能正在升级到 beta 阶段 13 项增强功能正在升级到 stable 阶段 两项功能已被标记为弃用或删除 主要变化

2023-08-17

Kubernetes 1.28 已正式发布,距上次更新已有 4 个月,是 2023 年的第二个版本。该版本包含 45 项增强功能。其中,19 项进入 Alpha 阶段,14 项升级到 Beta 阶段,12 项升级到稳定版。 v1.28 发布主题为 Planternetes,寓意为社区成员就像

2024-10-16

Python 3.13 上周正式发布了稳定版,主要变化包括一个新的交互式解释器、对在自由线程模式(无全局解释锁,no-GIL)下运行的实验性支持 (PEP 703),以及即时编译器 (PEP 744)。这些改进预计将带来性能的适度提升。 近日,开发

2023-03-21

部分编译器报错改善 KCL Playground 支持代码分享能力 Kubernetes KPT 工具集成方案设计 Kubernetes Helm KCL 工具插件方案   下一步计划 KPM 包管理工具正式发布 更多 KCL 编译器语法错误恢复支持新版 IDE 插件发布,性能预

2023-08-23

ME.md 节点负载感知调度与重调度支持多样化的监控系统 Kubernetes 集群状态随着任务的创建和结束实时变化,在某些场景(如:增加、删除节点,Pod、Node 的亲和性改变,作业生命周期动态变化等),出现集群节点间资源利用率

2023-12-08

onfig Server 的 Native image 支持 ( PR 2361 ) Spring Cloud Kubernetes 将 Fabric8 升级到 6.7.2 ( #1373 ) 将 Kubernetes Java Client 升级到 19.0.0 (1502) Spring Cloud Build 所有 Spring Cloud 文档都是在 Antora 的帮助下构建的,其中包括新

2023-07-18

top 1.2 已正式发布。此版本添加了许多新功能(包括支持 Kubernetes 和 Compose 扩展)、修复错误,以及增强管理容器的使用体验。 Podman Desktop 是一款开源图形工具,让用户能够在本地环境中无缝使用容器和 Kubernetes。 Podman D

2022-02-22

ost('/', inputs=Document(text='world')) print(docs.texts) Flow:使用 Kubernetes 和 Docker Compose 运行 Kubernetes:使用 Flow .to_k8s_yaml('./k8s_flow') 从一个 Flow 中生成一组部署的 YAML 文件,然后使用 Kubernetes 和 kubectl 来启动和协调 Executors。Docker Com

2023-08-23

的是,它帮助定义了我们的使命和目标:为使用容器和 Kubernetes 的开发人员提供简单的工作流程。” 接下来,开发团队将继续致力于 Podman Desktop 的改进和增强,专注于容器的使用体验。并计划在接下来的几个月里丰富与 Kubern