Kubernetes 1.29:稳定性提升、性能升级,全新功能来袭!

发布时间:2024年01月05日

关注【云原生百宝箱】公众号,获取更多云原生消息

Kubernetes 1.29版本带来了多项重要变化和功能更新。这次发布将ReadWriteOncePod从Alpha版本升级到稳定版,引入了nftables来取代iptables以提升性能,将SidecarContainers功能升级至Beta并默认启用,对Node生命周期的Taint管理进行了重构,以及引入了新的Alpha功能MatchLabelKeys / MismatchLabelKeys等。

同时,新增了管理服务IP地址范围的API以及支持原地更新Pod资源的功能。还对Cronjob创建方式进行了废弃通知,建议使用.spec.timeZone替代。总体而言,这些改变为Kubernetes用户提供了更加稳定、高效的容器编排体验。

概述

Kubernetes已成为事实上的行业标准容器编排技术,用于大规模部署和管理容器化应用程序。

图片

Kubernetes 版本 1.29

**Kubernetes 1.29 主题和徽标 — Mandala **(宇宙)

图片

Kubernetes 1.29 Mandala

此次发布的灵感来自精美的Mandala?艺术风格,代表了宇宙的终极形态。K8S 在数百名社区贡献者的支持下,努力为全球数百万人解决障碍和跳转。

让我们开始看看吧

版本 1.29 中的总增强功能数量:49

11 个升级为稳定版19 个升级为Beta 版19 个升级Alpha 版

稳定版的改进

  • ??ReadWriteOncePod —在 1.22 版本中作为CSI 驱动程序的Alpha功能引入,现已升级为稳定版。1.22之前k8s有三种卷访问模式RWO?,?RWM?,?ROM。**ReadWriteOncePod (RWOP)**确保 整个集群中只有附加到该卷的 Pod 能读取或写入该 PV/PVC。

apiVersion:?v1
kind:?PersistentVolume
metadata:
??name:?pv
spec:
??capacity:
????storage:?5Gi
??accessModes:
????-?ReadWriteOncePod
  • ??nftables —?之前版本中Linux上的 kube-proxy 实现使用的是iptables。iptable 后继者基于nftables 的新后端。

一些 Linux 发行版弃用并删除了iptables,而nftables主要解决 iptables 的性能问题。

云原生百宝箱

行万里路,此处相逢,共话云原生之道。 偶逗趣事,明月清风,与君同坐。

51篇原创内容

公众号

Beta功能

  • ??SidecarContainers — SidecarContainers功能已升级为测试版并默认启用。SidecarContainers将在所有主容器之后收到 SIGTERM。SidecarsContianers终止时的顺序将相反。

  • ??节点生命周期污点管理-从NodeLifecycleController中删除TaintManager(负责基于污点的 pod 驱逐),并创建两个不同的控制器NodeLifecycleController(向不健康的节点添加污点)和TaintManager(从具有 NoExecute 效果的污点节点中删除 pod) 。

  • ??清理旧版基于 Secret 的 SA 令牌:ServiceAccount令牌有时间限制,并且特定于1.22版本中的 Pod。K8s在1.24中停止自动生成ServiceAccount的令牌。在 v1.29 新功能中,旧的自动生成的密钥令牌如果长时间未使用,默认情况下会自动删除它们。

Alpha特征

  • ??MatchLabelKeys /MismatchLabelKeys —PopAffinity/Antiaffinity引入MatchLabelKeys /MismatchLabelKeys?,允许用户仔细定义 Pod 亲和(PodAffinity)或反亲和(PodAntiAffinity)的范围。

affinity:
??podAffinity:??????#?Pods?land?on?the?same?node?pool
????requiredDuringSchedulingIgnoredDuringExecution:
????-?matchLabelKeys:
????????-?nginx
??????topologyKey:?node-pool
??podAntiAffinity:??#?only?Pods?from?this?tenant?lands?on?the?same?node?pool
????requiredDuringSchedulingIgnoredDuringExecution:
????-?mismatchLabelKeys:
????????-?nginx
??????labelSelector:
????????matchExpressions:
????????-?key:?nginx
??????????operator:?Exists
??????topologyKey:?node-pool
  • ??用于管理 SVC IP 地址范围的 API — K8s服务提供了公开应用程序的方法。集群范围的虚拟 IP 地址是根据kube-apiserver标志中指定的预定CIDR分配的,可用于服务。用户可以使用两个新的 API 对象ServiceCIDRIPAddress来修改、添加或删除已分配给服务的 IP 范围,而无需重新启动kube-apiserver

  • ??POD资源原地更新?- 作为 alpha 功能,K8s?pod 的资源是可变的,现在您将能够更新就地资源而无需重新启动。

弃用

  • ??不支持使用CRON_TZ.spec.scheduleTZ变量创建 Cronjob 。建议的方法是使用.spec.timeZone。如果您现有的 cronjobs 仍在使用这些变量,请更新或修改它。

  • ??删除了网络对象ClusterCIDR?(?Alpha?API)

- END -


推荐阅读

文章来源:https://blog.csdn.net/fly910905/article/details/135415913
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。