Kubernetes 1.21:赋能社区

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

在本发布周期中,我们看到发布团队的流程所有权发生了重大转变。我们从同步通信模式(定期向社区征求意见)转变为社区选择贡献功能和/或博客的模式。这些变化导致社区协作和团队合作的增加。所有这些都反映在 Kubernetes 1.21 拥有近期最多的功能数量。

主要主题

CronJobs 升级到稳定版!

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

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

不可变 Secret 和 ConfigMaps

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

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

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

IPv4/IPv6 双栈支持

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

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

优雅节点关机

优雅节点关机也在此版本中升级到 Beta 版(现在将提供给更多用户)!这是一个非常有益的功能,它允许 kubelet 识别节点关机,并优雅地终止调度到该节点的 Pod。

目前,当节点关机时,Pod 不会遵循预期的终止生命周期,也不会优雅地关机。这可能会导致许多不同工作负载的问题。未来,kubelet 将能够通过 systemd 检测到即将到来的系统关机,然后通知运行中的 Pod,以便它们尽可能优雅地终止。

PersistentVolume 健康监视器

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

Kubernetes 1.21 有一个新的 Alpha 功能,允许监视 PV 的卷健康状况,并在卷不健康时进行相应标记。工作负载将能够根据健康状态做出反应,以保护数据免受不健康卷的写入或读取。

减少 Kubernetes 构建维护

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

在过去的发布周期中,我们投入了大量工作来简化构建过程,并标准化为原生的 Golang 构建工具。这应该会促进更广泛的社区维护,并降低新贡献者的入门门槛。

重大变更

PodSecurityPolicy 弃用

在 Kubernetes 1.21 中,PodSecurityPolicy 已弃用。与所有 Kubernetes 功能弃用一样,PodSecurityPolicy 将在接下来的几个版本中继续可用并完全正常运行。PodSecurityPolicy 以前处于 Beta 阶段,计划在 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 主站点上查看一些交互式教程,或者使用 Docker 容器和 kind 在您的机器上运行本地集群。如果您想尝试从头开始构建集群,请查看 Kelsey Hightower 的Kubernetes the Hard Way 教程。

发布团队

这个版本是由一群非常敬业的个人实现的,他们在世界各地发生许多事情的情况下,作为一个团队走到了一起。非常感谢发布负责人 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 的流程。在此处了解更多有关指南的信息:k8s.dev/rename
  • CNCF 和 Linux 基金会宣布推出新的培训课程 LFS260 – Kubernetes 安全要点。除了提供关于保护基于容器的应用程序和 Kubernetes 平台的各种最佳实践的技能和知识外,该课程也是为最近推出的 认证 Kubernetes 安全专家 认证考试做准备的好方法。

活动更新

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

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

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

参与其中

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