Kubernetes 1.26: 汇总变更内容(新功能!)和升级时的注意事项

首先

这篇文章提供了Kubernetes 1.26的CHANGELOG以及从Kubernetes v1.26: Electrifying到What’s new!的页面链接,其中包含升级注意事项和各个修改点的总结。请参阅每个总结页面以获取更多详细信息。

详细更改内容链接

Metrics Changes と SIG Instrumentation @watawuwu

SIG Apps @yosshi_

SIG API Machinery @Ladicle

SIG Auth @hiyosi

SIG CLI @superbrothers

SIG Cluster Lifecycle @yuanying

SIG Storage @ysakashita

SIG Network @tkusumi

SIG Scheduling @everpeace

SIG Node @y1r96

What’s New (Major Themes)

容器镜像注册表更改

在之前的版本中,Kubernetes更改了容器注册表,并且可以在多个云提供商和地区进行负载均衡。这个变化减少了对单一实体的依赖,并且为许多用户提供了更快的下载体验。

这个Kubernetes的版本是第一个仅在新的registry.k8s.io容器镜像注册表中发布的版本。(现在已经是传统的)k8s.gcr.io镜像注册表将不再发布带有v1.26标签的容器镜像,仅持续更新v1.26之前的标签。关于这个重要变更的动机、优点和意义,请参考registry.k8s.io:更快、更便宜和普遍可用。

中国之声(CRI)v1alpha2已删除。

通过Container Runtime Interface(CRI)和v1.24的dockershim的删除,CRI已成为与不同容器运行时进行交互的唯一支持和文档化的方式。每个kubelet将协商其节点上使用的容器运行时和CRI版本。

在以前的发布中,Kubernetes项目推荐使用CRI版本v1,但kubelet继续使用v1alpha2,并且这被认为是不推荐的做法。

在Kubernetes v1.26中,不再支持CRI v1alpha2。通过删除它,如果kubelet不支持CRI v1的容器运行时,将无法注册节点。这意味着Kubernetes v1.26不支持containerd的1.5版本及更早版本。如果使用containerd,需要在将节点升级到Kubernetes v1.26之前将containerd升级到1.6.0或更高版本。这也适用于只支持v1alpha2的其他容器运行时。如果受影响,请联系容器运行时的供应商以获得建议,或在其网站上进一步了解未来的更新方式。

存储改进

以前のリリースでコアのContainer Storage Interface (CSI) Migration機能のGAに続き、CSI migrationは数リリース前から取り組んでいる継続的な取り組みで、今回のリリースでもマイグレーションの目標に沿った機能の追加(および削除)、およびKubernetesストレージのその他の改良が行われています。

CSI迁移适用于Azure File和vSphere已升级至稳定版本。

如果您想了解更多详细信息,请参考vSphere CSI驱动程序和Azure File CSI驱动程序的存储库。vSphere和Azure的in-tree驱动的CSI迁移已升级为稳定版本。

将FSGroup委派给CSI驱动程序升级到稳定版本

通过该功能,Kubernetes将在挂载卷时将Pod的fsGroup提供给CSI驱动程序,并且驱动程序可以使用挂载选项来控制卷的权限。之前,Kubelet始终根据Pod的.spec.securityContext.fsGroupChangePolicy字段中指定的策略应用于卷内文件的fsGroup所有权和权限更改。从这个版本开始,CSI驱动程序添加了在附加或挂载卷时应用fsGroup设置的选项。

移除内嵌的GlusterFS驱动程序

在这个发布版本中,已经删除了被视为废弃的内置GlusterFS驱动器,这个驱动器在v1.25版本中已经不再推荐使用。

移除In-tree OpenStack Cinder驱动程序

在这个版本中,已经删除了原来的在OpenStack(Cinder卷类型)中的内置存储集成,该功能被列为不推荐使用。相反,您应该迁移到 https://github.com/kubernetes/cloud-provider-openstack 的外部云提供程序和CSI驱动程序。有关更详细的信息,请参考Cinder in-tree to CSI driver migration。

将Kubernetes发布的相关文件签署升级为正式版

在 Kubernetes v1.24 中引入的这个功能构成了提升 Kubernetes 发布的安全性的重要里程碑。所有的发布构件都会通过 cosign 进行无密钥签名,既可以验证二进制构件又可以验证镜像。

Windows特权容器的支持升级为稳定版本。

在支持特权容器的情况下,可以在主机上直接运行进程和拥有主机访问权限的容器。在Windows节点上,通过支持这一功能,被称为HostProcess容器的特权容器现已成为稳定版本,并且可以访问主机资源,包括网络资源。

对Kubernetes指标的改进

这个发布版本包含了一些值得关注的度量指标的改进。

度量框架的扩展升级为阿尔法版

度量衡框架扩展(Metrics framework extension)现已处于alpha版本,并发布了Kubernetes代码库中所有指标的文档。在这次增强中,我们为Kubernetes的指标添加了两个元数据字段:Internal和Beta。这两个元数据字段表示指标的不同成熟阶段。

组件健康服务水平指标升级至alpha版本。

改善了消费Kubernetes指标的功能,并将组件健康的服务水平指标(SLI)升级为Alpha级别。启用ComponentSLIs功能标志后,将添加额外的指标端点,通过将转化为指标格式的原始健康检查数据计算服务级别目标(SLO)。

现在可以使用功能指标了。

可以在每个Kubernetes组件中使用Feature Metrics,并通过检查组件的Metrics Endpoint的kubernetes_feature_enabled,来跟踪每个活动的特性开关是否已启用。

动态资源分配升级至阿尔法级别。

动态资源分配是一项新功能,将资源调度委托给第三方开发者:它提供了一个受限的“可计数”接口来替代请求资源(例如nvidia.com/gpu: 2),并提供了类似于持久卷的API。在内部,它使用容器设备接口(Container Device Interface,CDI)来注入设备。此功能受DynamicResourceAllocation功能门控制。

入学控制的CEL升级至alpha版本。

引入v1alpha1 API并使用Common Expression Language来实现可拓展的admission control,以支持validation admission policies的功能。目前,自定义策略是通过admission webhook进行强制执行的,与灵活但内部执行的策略相比,它存在一些缺点。要使用此功能,必须启用ValidatingAdmissionPolicy feature gate,并通过–runtime-config启用admissionregistration.k8s.io/v1alpha1。

由于我们已经对以下功能进行了调查,虽然简单,但如果您有兴趣,请也参考这个!

Pod调度的改进

在Kubernetes v1.26中,引入了几个与控制调度行为更为准确相关的功能增强。

PodSchedulingReadiness的等级提升至Alpha版。

此功能将.spec.schedulingGates字段添加到Pod的API中,以指示Pod是否允许被调度。外部用户和控制器可以使用此字段基于策略和需求来阻止Pod被调度。

NodeInclusionPolicyInPodTopologySpread 升级为 beta 版本。

通过指定topologySpreadConstraints的nodeInclusionPolicy,可以在计算Pod拓扑分布偏差时控制是否考虑污点和容忍设置。

其他更新

祝贺毕业找到稳定的工作

这个发布包含了总共11项增强功能的稳定提升。

    • Support for Windows privileged containers

 

    • vSphere in-tree to CSI driver migration

 

    • Allow Kubernetes to supply pod’s fsgroup to CSI driver on mount

 

    • Azure file in-tree to CSI driver migration

 

    • Job tracking without lingering Pods

 

    • Service Internal Traffic Policy

 

    • Kubelet Credential Provider

 

    • Support of mixed protocols in Services with type=LoadBalancer

 

    • Reserve Service IP Ranges For Dynamic and Static IP Allocation

 

    • CPUManager

 

    DeviceManager

弃用和删除

在这个版本中,Kubernetes 中有12个功能已被标为不推荐或删除。

    • CRI v1alpha2 API is removed

 

    • Removal of the v1beta1 flow control API group

 

    • Removal of the v2beta2 HorizontalPodAutoscaler API

 

    • GlusterFS plugin removed from available in-tree drivers

 

    • Removal of legacy command line arguments relating to logging

 

    • Removal of kube-proxy userspace modes

 

    • Removal of in-tree credential management code

 

    • The in-tree OpenStack cloud provider is removed

 

    • Removal of dynamic kubelet configuration

 

    • Deprecation of non-inclusive kubectl flag

 

    • Deprecations for kube-apiserver command line arguments

 

    Deprecations for kubectl run command line arguments

紧急升级注意事项

不,真的,在升级之前你必须阅读这个。(在升级之前,你务必阅读此内容)

v1.26で削除予定であった非推奨のbeta APIはサーブされなくなりました。詳細は https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-26 をご参照ください。(#111973, @liggitt)

    OpenStackのためのin-treeのcloud provider(とcinder volume provider)は削除されました。代わりにcloud-provider-openstackからexternal cloud providerとcsi driverを利用してください。(#67782, @dims)
广告
将在 10 秒后关闭
bannerAds