Kubernetes 1.21正式发布 | 主要变化解读

DevOps技术栈

共 3415字,需浏览 7分钟

 ·

2021-04-09 13:31

我们很高兴地宣布 Kubernetes 1.21 的发布,这是我们 2021 年的第一个版本!这个版本包含 51 个增强功能:13 个增强功能升级为稳定版,16 个增强功能升级为 beta 版,20 个增强功能进入 alpha 版,还有 2 个功能已经弃用。

在这个发布周期中,我们看到了围绕发布团队的过程所有权的重大转变。我们从一种同步的交流模式(我们定期向社区请求输入)转变为一种社区选择的模式——在发布中加入特性和/或博客。这些变化导致了整个社区协作和团队合作的增加。所有这些结果都反映在 Kubernetes 1.21 中,在最近的时间里,它拥有最多的特性。

主题

CronJobs 毕业到稳定!

自 Kubernetes 1.8 以来,CronJobs一直是一个测试版功能!在 1.21 中,我们终于看到这个广泛使用的 API 毕业到稳定。

CronJobs 用于执行定期计划的操作,如备份、报告生成等。每个任务都应该被配置为无限期地重复出现(例如:一天/一周/一个月);你可以在该间隔内定义作业应该启动的时间点。

不可变的 Secrets 和 ConfigMaps

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

通过将 Secrets 和 ConfigMaps 标记为不可变的,可以确保应用程序配置不会改变。如果你希望进行更改,则需要创建一个新的、唯一命名的 Secret 或 ConfigMap,并部署一个新的 pod 来消耗该资源。不可变资源也有伸缩性优势,因为控制器不需要轮询 API 服务器来观察变化。

这个特性在 Kubernetes 1.21 中已经毕业到稳定。

IPv4/IPv6 双栈支持

IP 地址是一种可消耗的资源,集群操作人员和管理员需要确保它不会耗尽。特别是,公共 IPv4 地址现在非常稀少。双栈支持使原生 IPv6 路由到 pod 和服务,同时仍然允许你的集群在需要的地方使用 IPv4。双堆栈集群网络还改善了工作负载的可能伸缩限制。

Kubernetes 的双栈支持意味着 pod、服务和节点可以获得 IPv4 地址和 IPv6 地址。在 Kubernetes 1.21 中,双栈网络已经从 alpha 升级到 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 计划在 Kubernetes 1.25 中删除。

接下来是什么?我们正在开发一种新的内置机制来帮助限制 Pod 权限,暂定名为“PSP 替换策略”。我们的计划是让这个新机制覆盖关键的 PodSecurityPolicy 用例,并极大地改善使用体验和可维护性。要了解更多信息,请阅读弃用 PodSecurityPolicy:过去、现在和未来

弃用 TopologyKeys

服务字段 topologyKeys 现在已弃用;所有使用该字段的组件特性以前都是 alpha 特性,现在也已弃用。我们用一种实现感知拓扑路由的方法替换了 topologyKeys,这种方法称为感知拓扑提示。支持拓扑的提示是 Kubernetes 1.21 中的一个 alpha 特性。你可以在拓扑感知提示中阅读关于替换特性的更多细节;相关的KEP解释了我们替换的背景。

其他更新

毕业到稳定

  • EndpointSlice
  • Add sysctl support
  • PodDisruptionBudgets

显著特性更新

  • External client-go credential providers——1.21 是 beta 版
  • Structured logging——计划 1.22 升级到 beta 版
  • 完成 Jobs 和 Pods 清理后的 TTL——升级到 beta

发布说明

你可以在发布说明中查看 1.21 版本的完整细节。

下载安装

Kubernetes 1.21 可在GitHub 上下载。Kubernetes 有一些很好的资源可供使用。你可以在 Kubernetes 站点上查看一些交互式教程,或者使用kind和 Docker 容器在你的机器上运行一个本地集群。如果你想尝试从头开始构建集群,请查看 Kelsey Hightower 编写的Kubernetes 艰难之路教程。

发布团队

这次发布是由一群非常专注的个人完成的,他们作为一个团队聚集在一起,在世界上发生了很多事情的时候。非常感谢发布负责人 Nabarun Pal,以及发布团队中所有相互支持、为向社区交付 1.21 发行版而努力工作的人。

版本标识

Kubernetes 1.21 发布标志描绘了发布团队的全球性质,发布团队成员居住在 UTC+8 到 UTC-8 的各个时区。发行团队的多样性带来了许多挑战,但团队通过采用更多的异步通信实践来解决这些问题。发行标志中的七角形球体表明了社区克服挑战的坚定决心。它庆祝发布团队在过去 3 个月里惊人的团队合作,带来了一个有趣的 Kubernetes 发布!

这个标志是由来自印度的独立设计师Aravind Sekar设计的。Aravind 帮助像 PyCon India 这样的开源社区进行设计工作。

原文链接: https://kubernetes.io/blog/2021/04/08/kubernetes-1-21-release-announcement/


- END -

公众号后台回复「加群」加入一线高级工程师技术交流群,一起交流进步。

 推荐阅读 

Kubernetes 运维架构师实战集训营 
31天拿下K8s含金量最高的CKA证书!
搭建一套完整的企业级 K8s 集群(v1.20,二进制方式)
记一次 Kubernetes 机器内核问题排查
Shell 脚本进阶,经典用法及其案例
Kubernetes 集群网络从懵圈到熟悉
一个完整的、全面 k8s 化的集群稳定架构
JAVA应用运维,线上故障排查全套路
记一次 Linux服务器被入侵后的排查思路



点亮,服务器三年不宕机

浏览 30
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报