Kubernetes v1.21 重磅发布 | 新版本 6 大核心主题

K8sMeetup 中国社区第一时间整理了 v1.21 的亮点内容,为大家详细介绍此版本的主要功能。

整理:Sarah(K8sMeetup) 来源:K8sMeetup社区 / 原文链接校对:木子(才云)FogDong(K8sMeetup)Bach(K8sMeetup)

美国时间 4 月 8 日,Kubernetes v1.21 正式发布,这是 Kubernetes 在 2021 年发布的第一个版本。此版本包含 51 项增强功能:13 项增强功能已进入稳定阶段,16 项增强功能已转为 beta 版,20 项增强功能已进入 alpha 版,弃用了 2 项功能。
Major Themes
新版本围绕以下主题:
1、CronJobs 已稳定
自 Kubernetes v1.8 起,CronJobs(以前称为 ScheduledJobs)已经成为 beta 版功能。CronJob 用于执行定期的计划操作,如备份、报告生成等。所有这些任务中都应配置为无限期重复(如每天、每周、每月一次);用户可在该时间间隔内定义 job 应开始的时间点。从 Kubernetes v1.21 开始,这个广泛使用的 API 将进入稳定阶段
2、不可变 Secret 和 ConfigMap
不可变 Secret 和 ConfigMap 向各自的资源类型中加入了新字段,确保新资源拒绝对这两种对象的更改。默认情况下,Secret 和 ConfigMap 是可变的,这对于能够使用更改的 Pod 很有用。如果为使用 Secret 和 ConfigMap 的 Pod 推送错误的配置,也会导致问题。
通过将 Secret 和 ConfigMap 标记为不可变,可以确保应用程序配置不会更改。如果要进行更改,则需要创建一个唯一已命名的 Secret 或 ConfigMap,并部署一个新 Pod 来使用该资源。不可变资源还具有扩展优势,因为 Controller 不需要轮询 API 服务器来监视更改。
从 Kubernetes v1.21 开始,不可变 Secret 和 Configmap 已成为稳定功能
3、IPv4 / IPv6 双协议栈支持
IP 地址是集群运维和管理人员需要确保不会耗尽的消耗性资源,尤其是在现在公共 IPv4 地址很稀缺的情况下。双栈支持可以将原生 IPv6 路由到 Pod 和 service,同时仍允许集群在需要的地方使用 IPv4。双栈集群网络还改善了工作负载可能会出现的扩展限制。
Kubernetes 中的 IPv4 / IPv6 双协议栈支持意味着 Pod、service 和节点可以获取 IPv4 地址和 IPv6 地址。在Kubernetes v1.21 中,双栈网络已从 alpha 功能升级到 beta 功能,并且默认启用。
4、优雅的节点关闭
优雅的节点关闭功能在此版本中也已升级到 beta 功能(现在可供更多用户使用)。这是一项非常有用的功能,它使 kubelet 可以知道节点已关闭,并可以优雅地终止计划到该节点的 Pod。目前,当节点关闭时,Pod 不会遵循预期的终止生命周期,因此无法正常关闭,这会给很多工作负载带来问题。从 Kubernetes v1.21 开始,kubelet 将能够通过 systemd 检测即将发生的系统关闭,然后通知正在运行的 Pod,以便它们尽可能正常地终止。
5、持久卷健康监控
持久卷(PV)在应用程序中可用于获取基于文件的本地存储。它们能以多种不同的方式使用,并可以帮助用户迁移应用程序而无需重新编写存储后端。
Kubernetes v1.21 具有一项新的 alpha 功能,该功能可以监视 PV 的健康状况,并在 volume 变得不健康时进行相应的标记。工作负载将能够对 PV 的健康状况做出反应,以保护不正常的 volume 中不会有数据写入或读取。
6、减少 Kubernetes 的构建维护
以前,Kubernetes 维护了多个构建系统。这对于贡献者来说非常复杂。在上一个发行周期中,已投入大量工作来简化构建过程,并标准化了原生 Golang 构建工具。这将使社区得到更广泛的维护,并降低新贡献者的入门门槛。
 
主要变化
1、弃用 PodSecurityPolicy
在 Kubernetes v1.21 中,PodSecurityPolicy 已弃用。和其它 Kubernetes 已弃用的功能一样,PodSecurityPolicy 将继续在多个版本中完整可用。作为此前的 beta 功能,PodSecurityPolicy 将在Kubernetes v1.25 中被删除。
社区正在开发一种新的内置机制来帮助限制 Pod 特权,该机制称为“ PSP Replacement Policy”。计划是用这种新机制覆盖主要的 PodSecurityPolicy 用例,并大大改善可维护性。
2、弃用 topologyKeys
Service 字段 topologyKeys 在 Kubernetes v1.21 中已弃用。使用此字段的所有组件功能以前为 alpha,现在都已弃用。目前社区已经用一种实现拓扑感知路由的方法(称为 topology-aware hints,拓扑感知提示)替换了 topologyKeys。拓扑感知提示是 Kubernetes v1.21 中的 alpha 功能。
 
其它更新
1、以下功能已进入稳定阶段
  • EndpointSlice
  • 新增 sysctl 支持
  • PodDisruptionBudgets
2、重要功能更新
  • External client-go credential providers:在 Kubernetes v1.21 中提供 beta 版;
  • Structured logging:将在 Kubernetes v1.22 中提供 beta 版;
  • TTL after finish cleanup for Jobs and Pods:在 Kubernetes v1.21 中提供 beta 版。
 
发布 logo

Kubernetes v1.21 的发布 logo 是一个七边形地球仪,描绘了发布团队全球化的属性。发布团队的多样性带来了很多挑战,但是团队通过采用异步沟通的实践解决了所有这些挑战。发布 logo 中的七边形地球仪标志着社区克服挑战的绝对决心。发行团队经过过去三个月惊人的团队合作,带来了一个有趣的 Kubernetes 发布版本,以此发布 logo 庆祝!
 
小结
Kubernetes v1.21 发布周期历时 12 周(1 月 11 日-4 月 8 日),贡献者来自 999 家公司以及 1279 位个人。随着 Kubernetes 越来越稳定,其采用也越来越广泛,社区也不断繁荣壮大。
本文简单介绍了 Kubernetes v1.21 中的重要增强功能,以及企业用户和个人开发者可能会比较关注的新功能。关于新版本的更多内容,请查看官方文档:
https://kubernetes.io/blog/2021/04/08/kubernetes-1-21-release-announcement/
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md
K8S中文社区微信公众号

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #2

    19、20 哪里去了?

    yzsama2个月前 (08-10)回复
  2. #1

    最全空降Golang资料补给包(满血战斗),包含文章,书籍,作者论文,理论分析,开源框架,云原生,大佬视频,大厂实战分享ppt
    https://github.com/0voice/Introduction-to-Golang

    5suitaitou2个月前 (08-13)回复