Kubernetes 1.23:下一个前沿

我们很高兴宣布 Kubernetes 1.23 发布,这是 2021 年的最后一个版本!

本次发布包含 47 项增强功能:11 项增强功能已升级到稳定版,17 项增强功能正在迁移到测试版 (Beta),19 项增强功能正在进入实验版 (Alpha)。此外,1 个特性已被弃用。

主要主题

FlexVolume 弃用

FlexVolume 已弃用。建议使用树外 CSI 驱动程序作为在 Kubernetes 中编写卷驱动程序的方式。更多信息请参阅此文档。FlexVolume 驱动程序的维护者应实现一个 CSI 驱动程序,并将 FlexVolume 的用户迁移到 CSI。FlexVolume 的用户应将其工作负载迁移到 CSI 驱动程序。

klog 特定标志的弃用

为了简化代码库,在 Kubernetes 1.23 中有几个日志记录标志被标记为弃用。实现这些标志的代码将在未来版本中移除,因此使用这些标志的用户需要开始用其他替代方案替换弃用的标志。

Kubernetes 发布流程中的软件供应链 SLSA Level 1 合规性

Kubernetes 发布现在会生成描述发布流程的暂存和发布阶段的出处证明文件。现在,制品在从一个阶段移交给下一个阶段时会得到验证。最后这部分工作完成了达到 SLSA 安全框架 (Software Supply-chain Levels for Software Artifacts) Level 1 所需的工作。

IPv4/IPv6 双栈网络升级到 GA

IPv4/IPv6 双栈网络升级到 GA。自 1.21 版本起,Kubernetes 集群默认启用双栈网络支持。在 1.23 版本中,`IPv6DualStack` 特性门被移除。使用双栈网络并非强制要求。尽管集群已启用双栈网络支持,Pod 和 Service 仍默认使用单栈。要使用双栈网络,Kubernetes 节点必须具备可路由的 IPv4/IPv6 网络接口,必须使用支持双栈的 CNI 网络插件,Pod 必须配置为双栈,并且 Service 的 `.spec.ipFamilyPolicy` 字段必须设置为 `PreferDualStack` 或 `RequireDualStack`。

HorizontalPodAutoscaler v2 升级到 GA

HorizontalPodAutoscaler `autoscaling/v2` 稳定 API 在 1.23 中迁移到 GA。HorizontalPodAutoscaler `autoscaling/v2beta2` API 已被弃用。

通用临时卷 (Generic Ephemeral Volume) 特性升级到 GA

通用临时卷特性在 1.23 中迁移到 GA。此特性允许将任何支持动态调配的现有存储驱动程序用作临时卷,其生命周期与 Pod 绑定。所有 StorageClass 卷调配参数和 PersistentVolumeClaims 支持的所有特性都得到支持。

跳过卷所有权变更升级到 GA

为 Pod 配置卷权限和所有权变更策略的特性在 1.23 中迁移到 GA。这允许用户跳过挂载时的递归权限变更,从而加快 Pod 启动时间。

允许 CSI 驱动程序选择加入卷所有权和权限变更升级到 GA

允许 CSI 驱动程序声明支持基于 fsGroup 的权限的特性在 1.23 中升级到 GA。

PodSecurity 升级到 Beta

PodSecurity 迁移到 Beta。`PodSecurity` 替换了已弃用的 `PodSecurityPolicy` 准入控制器。`PodSecurity` 是一个准入控制器,它根据设置强制级别的特定 Namespace 标签,在 Namespace 中的 Pods 上强制执行 Pod 安全标准。在 1.23 中,`PodSecurity` 特性门默认启用。

容器运行时接口 (CRI) v1 是默认版本

Kubelet 现在支持 CRI `v1` API,它现已成为整个项目范围内的默认版本。如果容器运行时不支持 `v1` API,Kubernetes 将回退到 `v1alpha2` 实现。终端用户无需采取任何中间操作,因为 `v1` 和 `v1alpha2` 在实现上没有区别。为了能够继续开发 `v1`,`v1alpha2` 很可能在未来某个 Kubernetes 版本中被移除。

结构化日志记录升级到 Beta

结构化日志记录达到了 Beta 里程碑。来自 kubelet 和 kube-scheduler 的大部分日志消息已转换为结构化格式。鼓励用户尝试 JSON 输出或结构化文本格式的解析,并就开放问题的可能解决方案(例如处理日志值中的多行字符串)提供反馈。

简化调度器的多点插件配置

kube-scheduler 正在添加一个新的简化配置字段 `Plugins`,以允许在一个位置启用多个扩展点。新的 `multiPoint` 插件字段旨在简化大多数管理员的调度器设置。通过 `multiPoint` 启用的插件将自动为它们实现的每个单独扩展点注册。例如,一个实现了 Score 和 Filter 扩展的插件可以同时在这两个扩展点上启用。这意味着可以启用和禁用整个插件,而无需手动编辑单个扩展点设置。这些扩展点现在可以被抽象化,因为它们对大多数用户来说并不重要。

CSI 迁移更新

CSI 迁移允许用相应的 CSI 驱动程序替换现有的树内存储插件,例如 `kubernetes.io/gce-pd` 或 `kubernetes.io/aws-ebs`。如果 CSI 迁移正常工作,Kubernetes 终端用户不应注意到任何差异。迁移后,Kubernetes 用户可以继续使用现有接口依赖于所有树内存储插件的功能。

  • CSI 迁移特性默认开启,但在 1.23 中仍针对 GCE PD、AWS EBS 和 Azure Disk 保持 Beta 状态。
  • 在 1.23 中,CSI 迁移针对 Ceph RBD 和 Portworx 作为 Alpha 特性引入。

CRD 的表达式语言验证是 alpha 特性

自 1.23 版本起,CRD 的表达式语言验证处于 alpha 阶段。如果 `CustomResourceValidationExpressions` 特性门启用,自定义资源将使用 Common Expression Language (CEL) 通过验证规则进行验证。

服务端字段验证是 Alpha 特性

自 1.23 版本起,如果 `ServerSideFieldValidation` 特性门启用,当用户在请求中发送包含未知或重复字段的 Kubernetes 对象时,将收到来自服务器的警告。之前,未知字段和除最后一个外的所有重复字段都会被服务器丢弃。

启用该特性门后,我们还引入了 `fieldValidation` 查询参数,以便用户可以按请求指定服务器的所需行为。`fieldValidation` 查询参数的有效值包括:

  • Ignore(特性门禁用时的默认值,与 1.23 之前丢弃/忽略未知字段的行为相同)
  • Warn(特性门启用时的默认值)。
  • Strict(这将导致请求失败并返回 Invalid Request 错误)

OpenAPI v3 是 Alpha 特性

自 1.23 版本起,如果 `OpenAPIV3` 特性门启用,用户将能够请求所有 Kubernetes 类型的 OpenAPI v3.0 规范。OpenAPI v3 力求完全透明,并支持一组在发布 OpenAPI v2 时被丢弃的字段:`default`、`nullable`、`oneOf`、`anyOf`。为提高性能和发现效率,针对每个 Kubernetes 组版本发布单独的规范(在 `$cluster/openapi/v3/apis/<group>/<version>` 端点),所有组版本的规范可在 `$cluster/openapi/v3` 路径找到。

其他更新

升级到稳定版

重大变更

发行说明

请在我们的发行说明中查看 Kubernetes 1.23 发布的完整详细信息。

可用性

Kubernetes 1.23 可从 GitHub 下载。要开始使用 Kubernetes,请查看这些交互式教程或使用 kind 通过 Docker 容器“节点”运行本地 Kubernetes 集群。您也可以使用 kubeadm 轻松安装 1.23。

发布团队

本次发布归功于一群非常敬业的个人,他们组成团队,提供了技术内容、文档、代码以及构成每个 Kubernetes 发布的众多其他组件。

非常感谢发布负责人 Rey Lejano 带领我们成功度过了发布周期,也感谢发布团队中的其他所有人相互支持,辛勤工作为社区交付了 1.23 版本。

Kubernetes 1.23:下一个前沿

"下一个前沿" (The Next Frontier) 主题代表了 1.23 中新增和升级的增强功能、Kubernetes 的《星际迷航》引用历史以及发布团队中社区成员的成长。

Kubernetes 有引用《星际迷航》的历史。Kubernetes 在 Google 内部的原始代号是 Project 7,这是对《星际迷航:航海家号》中 Seven of Nine 的引用。当然,Borg 是 Kubernetes 前身的名称。“下一个前沿”主题延续了《星际迷航》的引用。“下一个前沿”是两个《星际迷航》标题的融合:《星际迷航 5:终极前沿》 (Star Trek V: The Final Frontier) 和《星际迷航:下一代》 (Star Trek the Next Generation)。

“下一个前沿”代表了 SIG Release 章程中的一句话:“确保有一组稳定的社区成员就位,以支持发布流程持续进行。”通过每个发布团队,我们都会吸收新的发布团队成员来壮大社区,对于许多人来说,这是他们在开源前沿的第一次贡献。

参考:https://kubernetes.ac.cn/blog/2015/04/borg-predecessor-to-kubernetes/ 参考:https://github.com/kubernetes/community/blob/master/sig-release/charter.md

Kubernetes 1.23 发布标志延续了主题的《星际迷航》引用。每颗星都是 Kubernetes 标志中的舵轮。飞船代表发布团队的集体协作。

Rey Lejano 设计了标志。

用户亮点

生态系统更新

项目速度

CNCF K8s DevStats 项目汇总了大量与 Kubernetes 和各种子项目速度相关的有趣数据点。这包括从个人贡献到贡献公司数量的方方面面,展示了这个生态系统演进所投入的深度和广度。

在持续 16 周的 v1.23 发布周期(8 月 23 日至 12 月 7 日)中,我们看到了来自 1032 家公司1084 名个人的贡献。

活动更新

  • KubeCon + CloudNativeCon China 2021 将于本月 12 月 9 日至 11 日举行。在去年停办一年后,今年的活动将以虚拟形式举行,包括 105 场会议。请在此处查看活动日程 here
  • KubeCon + CloudNativeCon Europe 2022 将于 2022 年 5 月 4 日至 7 日在西班牙瓦伦西亚举行!您可以在活动网站上找到更多关于会议和注册的信息。
  • Kubernetes Community Days 即将举行活动,已安排在巴基斯坦、巴西、成都和澳大利亚。

即将举行的发布网络研讨会

加入 Kubernetes 1.23 发布团队成员,于 2022 年 1 月 4 日了解此版本的主要功能,以及已弃用和移除的内容,以帮助规划升级。欲了解更多信息和注册,请访问 CNCF Online Programs 网站上的活动页面

参与其中

参与 Kubernetes 的最简单方式是加入众多与您兴趣相符的特殊兴趣小组 (SIG)。您是否有想向 Kubernetes 社区广播的内容?请在我们的每周社区会议上以及通过以下渠道表达您的声音