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 优先级和公平性
Kubernetes 1.18 中引入的 API 优先级和公平性 (APF) 现在在 Kubernetes 1.20 中默认启用。这允许 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 弃用
Docker 的容器运行时接口 (CRI) shim Dockershim 正在被弃用。对 Docker 的支持已弃用,将在未来的版本中删除。Docker 生成的镜像将继续在您的集群中使用所有符合 CRI 的运行时工作,因为 Docker 镜像遵循开放容器倡议 (OCI) 镜像规范。Kubernetes 社区已撰写了一篇关于弃用的详细博客文章,其中包含专门的常见问题解答页面。
Exec 探针超时处理
已修复一个关于 exec 探针超时的长期错误,该错误可能会影响现有的 pod 定义。在此修复之前,timeoutSeconds
字段不适用于 exec 探针。相反,探针将无限期运行,即使超过其配置的截止时间,直到返回结果。通过此更改,如果未指定值,则将应用默认值 1 秒
,如果探针花费的时间超过 1 秒,则现有的 pod 定义可能不再足够。此修复添加了一个名为 ExecProbeTimeout
的功能门,使集群运营商能够恢复到以前的行为,但这将在后续版本中锁定和删除。为了恢复到以前的行为,集群运营商应将此功能门设置为 false
。
请查看有关配置探针的更新文档,以获取更多详细信息。
其他更新
升级为稳定版
值得注意的功能更新
版本说明
您可以在版本说明中查看 1.20 版本的完整详细信息。
版本可用性
Kubernetes 1.20 可在 GitHub 上下载。有很多很好的资源可用于开始使用 Kubernetes。您可以在主要的 Kubernetes 网站上查看一些交互式教程,或者使用 kind 在您的计算机上使用 Docker 容器运行本地集群。如果您想尝试从头开始构建集群,请查看 Kelsey Hightower 的Kubernetes the Hard Way 教程。
发布团队
这个版本的发布是由一群非常敬业的个人共同努力完成的,他们在这个世界上发生了很多事情的情况下走到了一起,组成了一个团队。非常感谢发布负责人 Jeremy Rickard,以及发布团队中的其他所有成员,感谢他们互相支持,并为社区交付 1.20 版本而付出的辛勤工作。
发布徽标
raddest:形容词,俚语。极好的;精彩的;酷
Kubernetes 1.20 版本是迄今为止最出色的版本。
2020 年对我们许多人来说都是充满挑战的一年,但 Kubernetes 贡献者在此版本中交付了破纪录的增强功能数量。这是一个伟大的成就,因此发布负责人希望以一点轻松的方式结束这一年,并向Kubernetes 1.14 - Caturnetes 致敬,使用一只名叫 Humphrey 的“酷”猫。
Humphrey 是发布负责人的猫,并且有一个永久的 blep
。Rad 在 20 世纪 90 年代的美国非常常见的俚语,激光背景也是如此。Humphrey 拍摄的 20 世纪 90 年代风格的学校照片感觉是结束这一年的一个有趣方式。希望 Humphrey 和他的 blep 能在 2020 年底给您带来一点快乐!
发布徽标由 Henry Hsu - @robotdancebattle 创建。
用户亮点
- Apple 正在全球各地的数据中心运营数千个节点的 Kubernetes 集群。观看 Alena Prokharchyk 的 KubeCon NA 主题演讲,以了解有关他们云原生之旅的更多信息。
项目速度
CNCF K8s DevStats 项目汇总了与 Kubernetes 和各个子项目的速度相关的许多有趣的数据点。这包括从个人贡献到正在做出贡献的公司数量的所有内容,并且是对发展这个生态系统所付出的努力的深度和广度的巧妙说明。
在持续 11 周(9 月 25 日至 12 月 9 日)的 v1.20 版本周期中,我们看到了来自 967 家公司和1335 名个人的贡献(其中 44 人是首次为 Kubernetes 做贡献),来自26 个国家/地区。
生态系统更新
- KubeCon 北美大会刚刚在三周前结束,这是第二次以虚拟方式举办的活动!所有演讲现在都可以按需观看,供任何仍需补看的人观看!
- 六月份,为了直接回应美国各地发生的“黑人的命也是命”抗议活动,Kubernetes社区成立了一个新的工作组。WG Naming的目标是在Kubernetes项目中尽可能地移除有害和不明确的语言,并使其能够移植到其他CNCF项目中。在2020年北美KubeCon上,有一个关于这项重要工作及其如何进行的精彩介绍,并且这项工作的初步成果实际上可以在v1.20版本中看到。
- 今年夏天早些时候宣布的认证 Kubernetes 安全专家 (CKS) 认证在北美 KubeCon 期间发布,可立即安排考试!遵循 CKA 和 CKAD 的模式,CKS 是一项基于实践的考试,侧重于安全主题的能力和领域。此考试的目标人群是当前的 CKA 持有者,特别是那些希望完善其在保护云工作负载方面的基础知识的人(我们都是这样,对吧?)。
活动更新
KubeCon + CloudNativeCon 欧洲 2021 将于 2021 年 5 月 4 日至 7 日举行!注册将于 1 月 11 日开放。您可以在此处找到有关会议的更多信息。请记住,征集提案 (CFP) 将于太平洋标准时间 12 月 13 日星期日晚上 11:59 关闭!
即将发布的网络研讨会
请关注即将在今年一月举行的发布网络研讨会。
参与其中
如果您有兴趣为 Kubernetes 社区做出贡献,特别兴趣小组 (SIG) 是一个很好的起点。他们中的许多人可能与您的兴趣相符!如果您想与社区分享一些内容,您可以参加每周的社区会议,或使用以下任何渠道
- 在新Kubernetes 贡献者网站上了解更多关于为 Kubernetes 做出贡献的信息
- 在 Twitter 上关注我们 @Kubernetesio 以获取最新更新
- 加入 Discuss 上的社区讨论
- 在 Slack 上加入社区
- 分享您的 Kubernetes 故事
- 在博客上阅读更多关于 Kubernetes 发生的事情
- 了解更多关于Kubernetes 发布团队的信息