Kubernetes 1.21:社区的力量

我们很高兴地宣布 Kubernetes 1.21 发布,这是我们 2021 年的第一个版本!此版本包含 51 项增强功能:13 项增强功能已升级为稳定版,16 项增强功能正在升级为测试版,20 项增强功能正在进入 Alpha 版,并且有 2 项功能已被弃用。

在此发布周期中,我们看到了围绕发布团队的流程所有权发生了重大转变。我们从定期向社区征求意见的同步通信模式转变为社区选择参与贡献功能和/或博客到发布的模式。这些更改导致了社区之间协作和团队合作的增加。所有这些的结果反映在 Kubernetes 1.21 拥有最近时期最多的功能。

主要主题

CronJobs 升级为稳定版!

CronJobs(以前称为 ScheduledJobs)自 Kubernetes 1.8 以来一直是测试版功能!使用 1.21,我们终于看到这个广泛使用的 API 升级为稳定版。

CronJobs 旨在执行定期计划的操作,例如备份、报告生成等。每个任务都应配置为无限期重复(例如:每天/每周/每月一次);您可以定义作业应开始的间隔中的时间点。

不可变的 Secret 和 ConfigMap

不可变的 SecretConfigMap 向这些资源类型添加了一个新字段,如果设置了该字段,将拒绝更改这些对象。默认情况下,Secret 和 ConfigMap 是可变的,这对于能够使用更改的 pod 很有益。如果为使用它们的 pod 推送错误的配置,更改 Secret 和 ConfigMap 也可能会导致问题。

通过将 Secret 和 ConfigMap 标记为不可变的,您可以确保应用程序配置不会更改。如果要进行更改,您需要创建一个新的、唯一命名的 Secret 或 ConfigMap,并部署一个新的 pod 以使用该资源。不可变资源还具有扩展优势,因为控制器不需要轮询 API 服务器以监视更改。

此功能已在 Kubernetes 1.21 中升级为稳定版。

IPv4/IPv6 双栈支持

IP 地址是集群操作员和管理员需要确保不会耗尽的可消耗资源。特别是,公共 IPv4 地址现在很稀缺。拥有双栈支持可以实现到 pod 和服务的原生 IPv6 路由,同时仍然允许您的集群在需要时与 IPv4 通信。双栈集群网络还改善了工作负载可能存在的扩展限制。

Kubernetes 中的双栈支持意味着 pod、服务和节点可以获得 IPv4 地址和 IPv6 地址。在 Kubernetes 1.21 中,双栈网络已从 Alpha 版升级为测试版,现在默认启用。

优雅的节点关闭

优雅的节点关闭也在此版本中升级为测试版(现在将可供更多用户使用)!这是一个非常有益的功能,它允许 kubelet 了解节点关闭,并优雅地终止计划到该节点的 pod。

目前,当节点关闭时,pod 不会遵循预期的终止生命周期,并且不会优雅地关闭。这可能会给许多不同的工作负载带来问题。展望未来,kubelet 将能够通过 systemd 检测即将发生的系统关闭,然后通知正在运行的 pod,以便它们尽可能优雅地终止。

PersistentVolume 健康监控

持久卷 (PV) 通常在应用程序中用于获取本地、基于文件的存储。它们可以以许多不同的方式使用,并帮助用户迁移应用程序,而无需重写存储后端。

Kubernetes 1.21 有一个新的 Alpha 版功能,它允许监控 PV 的卷健康状况,如果卷变得不健康,则会相应地标记。工作负载将能够对健康状态做出反应,以保护数据免受写入或从不健康的卷读取。

减少 Kubernetes 构建维护

以前,Kubernetes 维护多个构建系统。这通常是新贡献者和现有贡献者的摩擦和复杂性的来源。

在上一个发布周期中,已投入大量工作来简化构建过程,并标准化在原生 Golang 构建工具上。这应该能够增强更广泛的社区维护,并降低新贡献者的入门门槛。

重大变更

PodSecurityPolicy 弃用

在 Kubernetes 1.21 中,PodSecurityPolicy 已被弃用。与所有 Kubernetes 功能弃用一样,PodSecurityPolicy 将在接下来的几个版本中继续可用且功能齐全。PodSecurityPolicy 以前处于测试阶段,计划在 Kubernetes 1.25 中删除。

接下来是什么?我们正在开发一种新的内置机制来帮助限制 Pod 权限,工作名称为“PSP 替换策略”。我们的计划是让这种新机制涵盖 PodSecurityPolicy 的主要用例,并大大提高人体工程学和可维护性。要了解更多信息,请阅读PodSecurityPolicy 弃用:过去、现在和未来

TopologyKeys 弃用

Service 字段 topologyKeys 现在已弃用;所有使用此字段的组件功能以前都是 Alpha 版,现在也已弃用。我们用一种称为拓扑感知提示的方法替换了 topologyKeys,以实现拓扑感知路由。拓扑感知提示是 Kubernetes 1.21 中的一个 Alpha 版功能。您可以在 拓扑感知提示中阅读有关替换功能的更多详细信息;相关的 KEP 解释了我们为什么切换的背景。

其他更新

升级为稳定版

值得注意的功能更新

发行说明

您可以在发行说明中查看 1.21 版本的完整详细信息。

版本可用性

Kubernetes 1.21 可在 GitHub 上下载。有一些很棒的资源可以帮助您开始使用 Kubernetes。您可以查看 Kubernetes 主站点上的一些交互式教程,或者使用 kind 在您的机器上使用 Docker 容器运行本地集群。如果您想尝试从头开始构建集群,请查看 Kelsey Hightower 的Kubernetes 硬方式教程。

发布团队

本次发布得益于一个非常敬业的团队,他们在世界上发生了很多事情的情况下走到了一起。非常感谢发布负责人 Nabarun Pal,以及发布团队中的其他每一位成员,感谢大家互相支持,并努力为社区交付了 1.21 版本。

发布徽标

Kubernetes 1.21 Release Logo

Kubernetes 1.21 发布徽标描绘了发布团队的全球性,发布团队成员居住在从 UTC+8 到 UTC-8 的时区。发布团队的多样性带来了很多挑战,但团队通过采用更多的异步通信实践克服了这些挑战。发布徽标中的七边形地球象征着社区克服挑战的坚定决心。它庆祝了发布团队在过去 3 个月里为带来一个充满乐趣的 Kubernetes 版本而进行的出色团队合作!

该徽标由来自印度的独立设计师 Aravind Sekar 设计。Aravind 在设计方面为 PyCon India 等开源社区提供帮助。

用户亮点

项目速度

CNCF K8s DevStats 项目汇总了与 Kubernetes 和各种子项目的速度相关的许多有趣的数据点。这包括从个人贡献到贡献公司的数量的所有内容,并且是对为发展这个生态系统而付出的努力的深度和广度的清晰说明。

在运行 12 周(1 月 11 日至 4 月 8 日)的 v1.21 发布周期中,我们看到了来自 999 家公司1279 位个人的贡献。

生态系统更新

  • 在针对全球亚洲社区的种族主义和袭击事件日益增加的情况下,请阅读 CNCF 总经理 Priyanka Sharma 在 CNCF 博客上发表的声明,重申了社区对包容价值观和多元化驱动的韧性的承诺。
  • 我们现在有了一个将默认分支从 master 迁移到 main 的流程。请在此处了解更多指南 这里
  • CNCF 和 Linux 基金会宣布推出新的培训课程,LFS260 – Kubernetes 安全基础知识。除了提供关于保护基于容器的应用程序和 Kubernetes 平台的各种最佳实践的技能和知识外,该课程也是为最近推出的 认证 Kubernetes 安全专家认证考试做准备的绝佳途径。

活动更新

  • 2021 年欧洲 KubeCon + CloudNativeCon 将于 2021 年 5 月 4 日至 7 日举行!您可以在此处找到有关会议的更多信息。
  • Kubernetes 社区日正在重新启动!2021 年第二季度将从非洲和班加罗尔开始。

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

请于 2021 年 5 月 13 日加入 Kubernetes 1.21 发布团队的成员,了解本次发布中的主要功能,包括 IPv4/IPv6 双栈支持、PersistentVolume 健康监控、不可变的 Secrets 和 ConfigMaps 等等。在此注册: https://community.cncf.io/events/details/cncf-cncf-online-programs-presents-cncf-live-webinar-kubernetes-121-release/

参与其中

如果您有兴趣为 Kubernetes 社区做出贡献,特殊兴趣小组 (SIG) 是一个很好的起点。他们中的许多人可能与您的兴趣相符!如果您想与社区分享一些内容,您可以参加每周的社区会议,或使用以下任何渠道