Kubernetes 1.20:最棒的发布

我们很高兴地宣布 Kubernetes 1.20 发布,这是我们 2020 年的第三个也是最后一个版本!此版本包含 42 项增强功能:11 项增强功能已升级到稳定版,15 项增强功能正在移至 Beta 版,16 项增强功能正在进入 Alpha 版。

在之前的扩展发布周期之后,1.20 发布周期恢复了其正常的 11 周发布节奏。这是近期功能最密集的版本之一:Kubernetes 的创新周期仍在向上发展。此版本中的 Alpha 增强功能多于稳定增强功能,这表明云原生生态系统中仍有许多值得探索的地方。

主要主题

卷快照操作走向稳定

此功能提供了一种标准方式来触发卷快照操作,并允许用户在任何 Kubernetes 环境和支持的存储提供商上以可移植的方式集成快照操作。

此外,这些 Kubernetes 快照原语作为基本构建块,能够为 Kubernetes 开发高级的企业级存储管理功能,包括应用程序或集群级别的备份解决方案。

请注意,快照支持要求 Kubernetes 发行商捆绑快照控制器、快照 CRD 和验证 webhook。集群上还必须部署支持快照功能的 CSI 驱动程序。

Kubectl Debug 升级到 Beta 版

kubectl alpha debug 功能在 1.20 中升级到 Beta 版,成为 kubectl debug。该功能直接从 kubectl 提供对常见调试工作流的支持。此版本 kubectl 支持的故障排除场景包括:

  • 通过创建使用不同容器镜像或命令的 Pod 副本,对启动时崩溃的工作负载进行故障排除。
  • 通过添加带有调试工具的新容器,对无发行版容器进行故障排除,无论是在 Pod 的新副本中还是使用临时容器。(临时容器是默认未启用的 Alpha 功能。)
  • 通过创建在主机命名空间中运行并具有主机文件系统访问权限的容器,在节点上进行故障排除。

请注意,作为一个新的内置命令,kubectl debug 优先于任何名为“debug”的 kubectl 插件。您必须重命名受影响的插件。

使用 kubectl alpha debug 的调用现已弃用,并将在后续版本中删除。请更新您的脚本以使用 kubectl debug。有关 kubectl debug 的更多信息,请参阅调试运行中的 Pod

Beta:API 优先级和公平性

在 1.18 中引入的 Kubernetes 1.20 现在默认启用 API 优先级和公平性(APF)。这允许 kube-apiserver 按优先级级别对传入请求进行分类。

已更新的 Alpha:IPV4/IPV6

IPv4/IPv6 双栈已重新实现,以根据用户和社区反馈支持双栈服务。这允许将 IPv4 和 IPv6 服务集群 IP 地址分配给单个服务,并且还允许服务从单个 IP 栈过渡到双 IP 栈,反之亦然。

GA:用于稳定性的进程 PID 限制

进程 ID (pid) 是 Linux 主机上的基本资源。在不触及任何其他资源限制的情况下达到任务限制并导致主机不稳定是微不足道的。

管理员需要机制来确保用户 Pod 不会导致 pid 耗尽,从而阻止主机守护程序(运行时、kubelet 等)运行。此外,重要的是要确保在 Pod 之间限制 pid,以确保它们对节点上其他工作负载的影响有限。在默认启用一年后,SIG Node 将 PID 限制升级到 GA,包括 SupportNodePidsLimit(节点到 Pod 的 PID 隔离)和 SupportPodPidsLimit(限制每个 Pod 的 PID 的能力)。

Alpha:优雅的节点关机

用户和集群管理员期望 Pod 遵循预期的 Pod 生命周期,包括 Pod 终止。目前,当节点关机时,Pod 不会遵循预期的 Pod 终止生命周期,并且不会优雅地终止,这可能会导致某些工作负载出现问题。GracefulNodeShutdown 功能现在处于 Alpha 阶段。GracefulNodeShutdown 使 kubelet 能够感知节点系统关机,从而在系统关机期间优雅地终止 Pod。

重大变更

Dockershim 弃用

Dockershim,Docker 的容器运行时接口 (CRI) shim 正在被弃用。对 Docker 的支持已弃用,并将在未来版本中删除。Docker 生产的镜像将继续在您的集群中与所有符合 CRI 的运行时一起工作,因为 Docker 镜像遵循开放容器倡议 (OCI) 镜像规范。Kubernetes 社区已撰写了一篇关于弃用的详细博文,并附有专门的常见问题页面

Exec 探测超时处理

一个长期存在的关于 exec 探测超时的错误已修复,该错误可能会影响现有的 Pod 定义。在此修复之前,timeoutSeconds 字段对于 exec 探测器未被遵守。相反,探测器会无限期运行,甚至超出其配置的截止时间,直到返回结果。随着此更改,如果未指定值,将应用默认值 1 秒,并且如果探测器花费的时间超过一秒,则现有 Pod 定义可能不再足够。此修复添加了一个名为 ExecProbeTimeout 的功能门,它允许集群操作员恢复到之前的行为,但这将在后续版本中锁定和删除。为了恢复到之前的行为,集群操作员应将此功能门设置为 false

请查阅有关配置探测器的更新文档以获取更多详细信息。

其他更新

升级到稳定版

值得注意的功能更新

发布说明

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

版本可用性

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

发布团队

这个版本的发布得益于一群非常敬业的个人,他们在世界各地发生许多事情的情况下,作为一个团队走到了一起。非常感谢发布负责人 Jeremy Rickard,以及发布团队中的所有其他人,感谢他们相互支持,并努力为社区发布 1.20 版本。

发布徽标

Kubernetes 1.20 Release Logo

raddest形容词,俚语。极好的;美妙的;酷的

Kubernetes 1.20 版本是迄今为止最酷的版本。

2020 年对我们许多人来说是充满挑战的一年,但 Kubernetes 贡献者在此版本中交付了创纪录数量的增强功能。这是一项巨大的成就,因此发布负责人希望以轻松愉快的方式结束这一年,并向Kubernetes 1.14 - Caturnetes 致敬,其中有一只名为 Humphrey 的“酷”猫。

Humphrey 是发布负责人的猫,它有一个永久的 blep(吐舌头)。Rad 是 1990 年代在美国非常流行的俚语,激光背景也是如此。Humphrey 的 1990 年代风格学校照片感觉是结束这一年的有趣方式。希望 Humphrey 和它的 blep 能在 2020 年底给您带来一些欢乐!

发布徽标由 Henry Hsu - @robotdancebattle 创建。

用户亮点

项目速度

CNCF K8s DevStats 项目汇总了与 Kubernetes 和各种子项目的速度相关的一些有趣数据点。这包括从个人贡献到贡献公司的数量的一切,是展示构建这个生态系统所付出的努力的深度和广度的精彩例证。

在为期 11 周(9 月 25 日至 12 月 9 日)的 v1.20 发布周期中,我们看到了来自 967 家公司1335 名个人(其中 44 名是首次贡献 Kubernetes)的贡献,他们来自 26 个国家

生态系统更新

  • KubeCon North America 在三周前刚刚结束,这是第二次以虚拟方式举行的活动!所有演讲现已可按需观看,供任何仍需赶上进度的观众!
  • 今年夏天早些时候,Kubernetes 社区成立了一个新的工作组,直接回应了美国各地发生的“黑人的命也是命”抗议活动。WG Naming 的目标是尽可能彻底地删除 Kubernetes 项目中有害和不明确的语言,并以一种可移植到其他 CNCF 项目的方式进行。关于这项重要工作及其开展方式的精彩介绍性演讲在2020 年北美 KubeCon 上发表,而这项工作的初步影响实际上可以在 v1.20 版本中看到
  • 此前已于今年夏天宣布,Kubernetes 安全专家 (CKS) 认证在 Kubecon NA 期间发布,可立即安排!遵循 CKA 和 CKAD 的模式,CKS 是一项基于性能的考试,侧重于安全主题的能力和领域。这项考试面向当前的 CKA 持有者,特别是那些希望完善其在保护云工作负载方面的基础知识的人(我们所有人,对吧?)。

活动更新

KubeCon + CloudNativeCon Europe 2021 将于 2021 年 5 月 4 日至 7 日举行!注册将于 1 月 11 日开放。您可以在此处找到有关会议的更多信息。请记住,CFP 将于太平洋时间 12 月 13 日星期日晚上 11:59 关闭!

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

敬请期待将于明年 1 月举行的即将发布的网络研讨会。

参与其中

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