• Kubernetes 1.29版本正式发布 都有哪些新特性呢?
  • 发布于 2个月前
  • 180 热度
    0 评论
Kubernetes 1.29版本带来了多项重要变化和功能更新。这次发布将ReadWriteOncePod从Alpha版本升级到稳定版,引入了nftables来取代iptables以提升性能,将SidecarContainers功能升级至Beta并默认启用,对Node生命周期的Taint管理进行了重构,以及引入了新的Alpha功能MatchLabelKeys / MismatchLabelKeys等。

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

概述
Kubernetes已成为事实上的行业标准容器编排技术,用于大规模部署和管理容器化应用程序。此次发布的灵感来自精美的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 的性能问题。

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 对象ServiceCIDR和IPAddress来修改、添加或删除已分配给服务的 IP 范围,而无需重新启动kube-apiserver。
• POD资源原地更新 - 作为 alpha 功能,K8s pod 的资源是可变的,现在您将能够更新就地资源而无需重新启动。

弃用
• 不支持使用CRON_TZ或.spec.schedule的TZ变量创建 Cronjob 。建议的方法是使用.spec.timeZone。如果您现有的 cronjobs 仍在使用这些变量,请更新或修改它。
• 删除了网络对象ClusterCIDR ( Alpha API)

用户评论