Kubernetes 1.23:新的前沿
我们很高兴地宣布发布 Kubernetes 1.23,这是 2021 年的最后一个版本!
此版本包含 47 项增强:11 项增强已升级到稳定版,17 项增强正在转向测试版,19 项增强正在进入 Alpha 版。此外,1 项功能已被弃用。
主要主题
FlexVolume 弃用
FlexVolume 已弃用。树外 CSI 驱动是 Kubernetes 中编写卷驱动的推荐方式。有关更多信息,请参阅此文档。FlexVolume 驱动的维护者应实现 CSI 驱动并将 FlexVolume 用户迁移到 CSI。FlexVolume 用户应将其工作负载迁移到 CSI 驱动。
klog 特定标志的弃用
为了简化代码库,Kubernetes 1.23 中将几个日志标志标记为已弃用。实现它们的代码将在未来的版本中删除,因此这些标志的用户需要开始使用其他解决方案替换已弃用的标志。
Kubernetes 发布过程中的软件供应链 SLSA 1 级合规性
Kubernetes 发布现在生成描述发布过程的阶段和发布阶段的出处证明文件。现在,在工件从一个阶段移交给下一个阶段时,它们会得到验证。这最后一步完成了符合 SLSA 安全框架(软件工件的供应链级别)级别 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 已弃用。
通用临时卷功能升级到 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` 是一个准入控制器,它根据设置强制执行级别的特定命名空间标签,对命名空间中的 Pod 强制执行 Pod 安全标准。在 1.23 版中,`PodSecurity` 功能门默认启用。
容器运行时接口 (CRI) v1 为默认值
Kubelet 现在支持 CRI `v1` API,该 API 现在是项目范围内的默认值。如果容器运行时不支持 `v1` API,Kubernetes 将回退到 `v1alpha2` 实现。终端用户无需采取中间操作,因为 `v1` 和 `v1alpha2` 在实现上没有区别。`v1alpha2` 可能会在未来的某个 Kubernetes 版本中移除,以便开发 `v1`。
结构化日志记录升级到 Beta
结构化日志记录已达到其 Beta 里程碑。kubelet 和 kube-scheduler 的大多数日志消息都已转换。鼓励用户尝试 JSON 输出或结构化文本格式的解析,并就开放问题的可能解决方案提供反馈,例如处理日志值中的多行字符串。
简化调度器多点插件配置
kube-scheduler 正在为插件添加一个新的简化配置字段,以允许在一个位置启用多个扩展点。新的 `multiPoint` 插件字段旨在简化大多数管理员的调度器设置。通过 `multiPoint` 启用的插件将自动注册它们实现的每个独立扩展点。例如,实现 Score 和 Filter 扩展的插件可以同时为两者启用。这意味着可以启用和禁用整个插件,而无需手动编辑单个扩展点设置。这些扩展点现在可以抽象化,因为它们对大多数用户无关紧要。
CSI 迁移更新
CSI 迁移允许将现有的树内存储插件(例如 `kubernetes.io/gce-pd` 或 `kubernetes.io/aws-ebs`)替换为相应的 CSI 驱动。如果 CSI 迁移正常工作,Kubernetes 终端用户应该不会注意到任何区别。迁移后,Kubernetes 用户可以继续使用现有接口的所有树内存储插件功能。
- CSI 迁移功能默认开启,但在 1.23 版中,GCE PD、AWS EBS 和 Azure Disk 仍处于 Beta 阶段。
- CSI 迁移在 1.23 版中作为 Alpha 功能引入 Ceph RBD 和 Portworx。
CRD 的表达式语言验证为 alpha
从 1.23 版开始,CRD 的表达式语言验证处于 alpha 阶段。如果启用了 `CustomResourceValidationExpressions` 功能门,自定义资源将通过使用通用表达式语言 (CEL) 的验证规则进行验证。
服务器端字段验证为 Alpha
如果从 1.23 版本开始启用 `ServerSideFieldValidation` 功能门,当用户在请求中发送包含未知或重复字段的 Kubernetes 对象时,服务器将收到警告。以前,服务器会删除未知字段和除最后一个重复字段之外的所有重复字段。
启用功能门后,我们还引入了 `fieldValidation` 查询参数,以便用户可以根据每个请求指定所需的服务器行为。`fieldValidation` 查询参数的有效值为:
- 忽略(功能门禁用时的默认值,与 1.23 之前的丢弃/忽略未知字段的行为相同)
- 警告(功能门启用时的默认值)。
- 严格(这将导致请求失败并出现“无效请求”错误)
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` 路径找到。
其他更新
升级到稳定版
- IPv4/IPv6 双栈支持
- 跳过卷所有权更改
- TTL After Finished 控制器
- 在 CSI 驱动对象中配置 FSGroup 策略
- 通用临时内联卷
- 通过静态分析防御日志记录秘密
- 命名空间范围的 Ingress Class 参数
- 减少 Kubernetes 构建维护
- HPA API 升级到 GA
重大变更
版本说明
请查看我们的发布说明,了解 Kubernetes 1.23 发布的完整详细信息。
可用性
Kubernetes 1.23 可在 GitHub 上下载。要开始使用 Kubernetes,请查看这些交互式教程,或使用 kind 通过 Docker 容器“节点”运行本地 Kubernetes 集群。您也可以使用 kubeadm 轻松安装 1.23。
发布团队
本次发布由一群非常敬业的个人共同努力完成,他们作为一个团队,提供了技术内容、文档、代码以及构成每个 Kubernetes 发布的许多其他组件。
非常感谢发布负责人 Rey Lejano 带领我们成功完成了发布周期,也感谢发布团队中的其他所有人互相支持,并为社区辛勤工作以交付 1.23 版本。
发布主题和标志
Kubernetes 1.23:新的前沿

“下一个前沿”主题代表了 1.23 中新增和升级的增强功能、Kubernetes 对《星际迷航》的引用历史以及发布团队中社区成员的成长。
Kubernetes 有着引用《星际迷航》的历史。Kubernetes 在 Google 内部的原始代号是 Project 7,这是对《星际迷航:航海家号》中“九之七”的引用。当然,Borg 是 Kubernetes 的前身名称。“下一个前沿”主题延续了《星际迷航》的引用。“下一个前沿”是两部《星际迷航》标题的融合,《星际迷航 V:终极前沿》和《星际迷航:下一代》。
“下一个前沿”代表了 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 最终用户技术雷达的调查结果以 DevSecOps 为主题。访问 雷达页面 获取完整详细信息和调查结果。
- 了解终端用户 Aegon Life India 如何将其核心流程从传统的单体迁移到基于微服务的架构,以努力转型为领先的数字服务公司。
- 利用多个云原生项目,希捷设计了 EdgeX,以在边缘运行实时分析。
- 了解Zambon 如何与 SparkFabrik 合作,利用云原生技术开发了 16 个网站,使利益相关者能够轻松更新内容,同时保持一致的品牌形象。
- 通过使用 Kubernetes,InfluxData 成功实现了多云、多区域服务可用性的承诺,它创建了一个真正的云抽象层,允许将 InfluxDB 作为单个应用程序无缝交付到三个主要云提供商的多个全球集群。
生态系统更新
- KubeCon + CloudNativeCon NA 2021 于 2021 年 10 月以线上和线下相结合的方式举行。所有讲座现已提供点播,供任何想要追赶的人观看!
- Kubernetes 和云原生基础培训以及 KCNA 认证现已普遍开放注册和安排。此外,还发布了新的在线培训课程《Kubernetes 和云原生基础 (LFS250)》,旨在为个人进入初级云角色和参加 KCNA 考试做准备。
- 包容性命名倡议现已提供新的资源,包括开源包容性策略 (LFC103) 课程、语言评估框架和实施路径。
项目速度
CNCF K8s DevStats 项目聚合了许多与 Kubernetes 和各种子项目的速度相关的有趣数据点。这包括从个人贡献到贡献公司数量的所有内容,并且是为发展这个生态系统所付出的努力的深度和广度的体现。
在为期 16 周的 v1.23 发布周期(8 月 23 日至 12 月 7 日)中,我们看到了来自 1032 家公司和 1084 名个人的贡献。
活动更新
- KubeCon + CloudNativeCon 中国 2021 将于本月 12 月 9 日至 11 日举行。在去年休息一年后,今年的活动将以虚拟方式进行,包括 105 场会议。在此处查看活动日程:此处。
- KubeCon + CloudNativeCon 欧洲 2022 将于 2022 年 5 月 4 日至 7 日在西班牙瓦伦西亚举行!您可以在活动网站上找到有关会议和注册的更多信息。
- Kubernetes 社区日即将在巴基斯坦、巴西、成都和澳大利亚举行。
即将举行的发布网络研讨会
加入 Kubernetes 1.23 发布团队成员,于 2022 年 1 月 4 日了解此版本的主要功能,以及弃用和移除的功能,以帮助规划升级。有关更多信息和注册,请访问 CNCF 在线程序网站上的活动页面。
参与其中
参与 Kubernetes 的最简单方法是加入众多与您的兴趣相符的特别兴趣小组 (SIG)。有什么想向 Kubernetes 社区广播的吗?在我们的每周社区会议和以下渠道中表达您的声音:
- 在 Kubernetes 贡献者网站上了解更多关于为 Kubernetes 做贡献的信息
- 在 Twitter 上关注我们 @Kubernetesio 获取最新更新
- 在 Discuss 上加入社区讨论
- 在 Slack 上加入社区
- 在 Stack Overflow 上提问(或回答问题)
- 分享你的 Kubernetes 故事
- 在博客上阅读更多关于 Kubernetes 的动态
- 了解更多关于 Kubernetes 发布团队的信息