Kubernetes 1.20:最酷的版本
我们很高兴宣布 Kubernetes 1.20 版本发布,这是我们 2020 年的第三个也是最后一个版本!此版本包含 42 项增强功能:11 项增强功能已晋升为稳定版,15 项增强功能正进入 Beta 阶段,16 项增强功能正进入 Alpha 阶段。
继上一个扩展发布周期后,1.20 发布周期恢复了正常的 11 周节奏。这是近期功能最密集的版本之一:Kubernetes 的创新周期仍在呈上升趋势。此版本的 Alpha 增强功能比稳定版多,表明云原生生态系统仍有许多可探索之处。
主要主题
卷快照操作转为稳定版
此功能提供了一种触发卷快照操作的标准方式,并允许用户在任何 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.20 在 1.18 中引入后,现已默认启用 API 优先级和公平性 (APF)。这允许 kube-apiserver
按优先级级别对传入请求进行分类。
带更新的 Alpha:IPv4/IPv6 双栈
基于用户和社区反馈,IPv4/IPv6 双栈已重新实现以支持双栈 Service。这允许同时为单个 Service 分配 IPv4 和 IPv6 服务集群 IP 地址,同时也使得 Service 可以在单 IP 栈和双 IP 栈之间相互转换。
正式可用:进程 PID 限制以提高稳定性
进程 ID (pid) 是 Linux 主机上的基本资源。在不达到其他资源限制的情况下达到任务限制是微不足道的,这会导致主机不稳定。
管理员需要机制来确保用户 Pod 不会导致 PID 耗尽,从而阻止主机守护进程(运行时、kubelet 等)运行。此外,重要的是确保在 Pod 之间限制 PID,以确保它们对节点上的其他工作负载影响有限。在默认启用一年后,SIG Node 将 PID 限制的 SupportNodePidsLimit
(节点到 Pod 的 PID 隔离)和 SupportPodPidsLimit
(限制每个 Pod PID 的能力)特性晋升为正式可用。
Alpha:优雅节点关机
用户和集群管理员期望 Pod 遵守预期的 Pod 生命周期,包括 Pod 终止。当前,当节点关闭时,Pod 不遵循预期的 Pod 终止生命周期,也未被优雅终止,这可能会导致某些工作负载出现问题。GracefulNodeShutdown
特性现在处于 Alpha 阶段。GracefulNodeShutdown
使 kubelet 感知到节点系统关机,从而在系统关机期间实现 Pod 的优雅终止。
主要变更
Dockershim 弃用
Dockershim,即 Docker 的容器运行时接口 (CRI) shim,正在被弃用。对 Docker 的支持已弃用,并将在未来版本中移除。由于 Docker 镜像遵循开放容器倡议 (OCI) 镜像规范,Docker 生成的镜像将继续在您的集群中与所有符合 CRI 的运行时一起工作。Kubernetes 社区写了一篇关于弃用的详细博客文章,以及一个专门的 FAQ 页面。
Exec Probe 超时处理
一个关于 exec probe 超时可能影响现有 Pod 定义的长期存在的 bug 已修复。在此修复之前,timeoutSeconds
字段对于 exec probe 不起作用。相反,probe 会无限期运行,甚至超出其配置的截止时间,直到返回结果。通过此变更,如果未指定值,将应用默认值 1 秒
,并且如果 probe 运行时间超过一秒,现有的 Pod 定义可能不再适用。此修复增加了一个名为 ExecProbeTimeout
的特性门,允许集群管理员恢复到之前的行为,但这将在后续版本中被锁定并移除。要恢复到之前的行为,集群管理员应将此特性门设置为 false
。
请查阅关于配置 probe 的更新文档以了解更多详情。
其他更新
晋升为稳定版
- RuntimeClass
- 内置 API 类型默认值
- 添加 Pod 启动 Liveness Probe 延迟
- 在 Windows 上支持 CRI-ContainerD
- 对 Service 的 SCTP 支持
- 为 Service 和 Endpoint 添加 AppProtocol
值得注意的特性更新
发布说明
您可以在发布说明中查看 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 的一张 90 年代风格的学生照片让人觉得这是一个有趣的方式来结束这一年。希望 Humphrey 和他的 blep 能在 2020 年底带给你一点欢乐!
发布徽标由Henry Hsu - @robotdancebattle 创建。
用户亮点
- Apple 在世界各地的多个数据中心运行着数千个节点的 Kubernetes 集群。观看Alena Prokharchyk 在 KubeCon NA 的主题演讲,了解更多关于他们的云原生之旅。
项目进展速度
CNCF K8s DevStats 项目汇总了许多与 Kubernetes 及各种子项目进展速度相关的有趣数据点。这包括从个人贡献到贡献公司数量的所有内容,这巧妙地说明了投入到发展这个生态系统中的努力的深度和广度。
在为期 11 周的 v1.20 发布周期(9 月 25 日至 12 月 9 日)中,我们看到了来自967 家公司和1335 位个人(其中44 位是首次贡献者)的贡献,他们来自26 个国家。
生态系统更新
- KubeCon 北美大会于三周前刚刚结束,这是第二次以线上方式举办!所有演讲现已提供按需观看,供有需要的人随时回顾!
- 6 月,Kubernetes 社区成立了一个新的工作组,直接响应美国各地发生的“黑人的命也是命”抗议活动。WG Naming 的目标是尽可能彻底地删除 Kubernetes 项目中有害和不明确的语言,并以一种可移植到其他 CNCF 项目的方式进行。在 KubeCon 2020 北美大会上,就这项重要工作及其开展方式进行了一场很棒的入门演讲,这项工作的初步影响实际上可以在 v1.20 版本中看到。
- 此前于今年夏天宣布,Certified Kubernetes Security Specialist (CKS) 认证已在 KubeCon NA 期间发布,可立即报名考试!CKS 沿袭 CKA 和 CKAD 的模式,是一项基于实际操作的考试,专注于安全相关能力和领域。本考试面向当前的 CKA 持有者,特别是那些希望完善其在保护云工作负载方面的基础知识的人(我们所有人,对吧?)。
活动更新
KubeCon + CloudNativeCon Europe 2021 将于 2021 年 5 月 4 日至 7 日举行!注册将于 1 月 11 日开放。您可以在此处找到有关会议的更多信息。请记住,征集议题 (CFP) 将于太平洋标准时间 12 月 13 日星期日晚上 11:59 截止!
即将到来的发布网络研讨会
请继续关注将于一月份举行的即将到来的发布网络研讨会。
参与其中
如果您对为 Kubernetes 社区做贡献感兴趣,特殊兴趣小组 (SIG) 是一个很好的起点。许多小组可能与您的兴趣相符!如果您想与社区分享一些内容,可以参加每周社区会议,或使用以下任何渠道:
- 在新的Kubernetes 贡献者网站上了解更多关于如何为 Kubernetes 做出贡献的信息
- 在 Twitter @Kubernetesio 上关注我们以获取最新动态
- 在Discuss 上加入社区讨论
- 在Slack 上加入社区
- 分享您的 Kubernetes 故事
- 在博客上阅读更多关于 Kubernetes 的动态
- 了解更多关于Kubernetes 发布团队的信息