查看原文
其他

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

点击关注 👉 Kubernetes 生态圈 2022-11-10

我们很高兴地宣布 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 Secrets和ConfigMaps为这些资源类型添加了一个新字段,如果设置了该字段,将拒绝对这些对象的更改。默认情况下,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 之 Pod 实现原理

Kubernetes Ingress-Nginx 实现蓝绿、灰度发布

建设 Kubernetes 生产环境的 16条建议

K8s kubectl工具常用命令及参数

Kubernetes 学习笔记总结,很详细!

一文详解 Prometheus 的高可用方案:Thanos

基于Prometheus的监控系统实践

Kubernetes业务日志收集与监控

运维必备的DevOps工具链大盘点



订阅,一起成长

K8s生态圈






点在看,K8s一年不出问题 👇

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存