关注【云原生百宝箱】公众号,获取更多云原生消息
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篇原创内容
公众号
??SidecarContainers — SidecarContainers功能已升级为测试版并默认启用。SidecarContainers将在所有主容器之后收到 SIGTERM。SidecarsContianers终止时的顺序将相反。
??节点生命周期污点管理-从NodeLifecycleController中删除TaintManager(负责基于污点的 pod 驱逐),并创建两个不同的控制器:NodeLifecycleController(向不健康的节点添加污点)和TaintManager(从具有 NoExecute 效果的污点节点中删除 pod) 。
??清理旧版基于 Secret 的 SA 令牌:ServiceAccount令牌有时间限制,并且特定于1.22版本中的 Pod。K8s在1.24中停止自动生成ServiceAccount的令牌。在 v1.29 新功能中,旧的自动生成的密钥令牌如果长时间未使用,默认情况下会自动删除它们。
??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)
推荐阅读