You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
Kubernetes 版本发布记录
(停止维护)容器服务发布 Kubernetes v1.26 版本说明
复制全文
下载 pdf
(停止维护)容器服务发布 Kubernetes v1.26 版本说明
火山引擎容器服务(VKE)严格遵循社区一致性认证。本文介绍容器服务发布 Kubernetes v1.26 版本所做的变更说明。​
版本发布说明​
表1:核心组件及说明​
​
核心组件​
当前版本号​
注意事项​
Kubernetes​
v1.26.15​
Kubernetes v1.25 和 v1.26 对测试版本 API 进行废弃和移除,使用新版本需进行兼容性检查。详情请参见本文下方 API 版本变更。​
Containerd Runtime​
1.6.38​
Kubernetes v1.26 Runtime 版本必须大于等于 1.6 版本。​
ETCD​
3.5.5​
无​
CoreDNS​
1.9.3​
无​
​
表2:Kubernetes 版本与容器服务版本对应关系​
​
Kubernetes 版本​
VKE 版本​
发布说明​
v1.26.15​
vke.39​
修复了 kube-controller-manager 中 pvcprotection controller 在删除 PVC 时,PVC 长期处于 Terminating 状态无法释放的问题。​
v1.26.15​
vke.38​
调度器新增 AcceleratorTopology 插件支持 NPU-A2 拓扑感知。​
v1.26.15​
vke.37​
强化 kube-apiserver,扩展请求限流功能。​
v1.26.15​
vke.36​
kube-controller-manager 新增 Informer 指标。​
v1.26.15​
vke.35​
PV 控制器添加限速队列,并改进 PV 和 PVC 绑定失败重新入队列逻辑。​
v1.26.15​
vke.34​
支持通过用户自建 Prometheus 采集控制面指标。​
v1.26.15​
vke.33​
扩展调度器负载感知插件支持 Cluster/Pod 纬度生效。​
v1.26.15​
vke.32​
mGPU 单容器多卡场景支持新的配置协议。​
v1.26.15​
vke.31​
支持通过 Pod Annotaion 配置 Pod 的大页 Cgroup 限制。​
v1.26.15​
vke.30​
优化 kube-apiserver 对 etcd 超过 2 GiB 大资源的请求逻辑。​
v1.26.15​
vke.29​
  • 支持 Memory 类型 EmptyDir 卷配置挂载选项。​
  • 支持透传 mGPU 调度分配结果到容器环境变量中。​
v1.26.15​
vke.28​
完善调度器在 mGPU 调度场景下,对于 GPU 卡故障的处理。​
v1.26.15​
vke.27​
强化 API Server,支持 VCI Pod 注入 Sidecar 容器。​
v1.26.15​
vke.26​
强化扩展调度器,支持 mGPU 在线和离线混合部署。​
v1.26.15​
vke.25​
修复漏洞 CVE-2024-10220。​
v1.26.15​
vke.24​
同步 Kubernetes 社区 v1.26.15 代码。​
v1.26.10​
vke.23​
强化扩展调度器,支持感知 Virtual Kubelet Service 变化。​
v1.26.10​
vke.22​
强化扩展调度器,支持本地存储感知调度。​
v1.26.10​
vke.21​
强化扩展调度器,支持 NUMA 拓扑感知调度和 RDMA 拓扑感知调度。​
v1.26.10​
vke.20​
修复扩展调度器感知 vePFS 存储时不支持 Local Path PV 的问题。​
v1.26.10​
vke.19​
  • 强化扩展调度器,mGPU 跨卡共享功能支持使用全量算力分配策略。​
  • 强化扩展调度器,支持感知 vePFS 存储。​
v1.26.10​
vke.18​
修复扩展调度器插件初始化异常问题。​
v1.26.10​
vke.17​
优化核心组件发布规范。​
v1.26.10​
vke.16​
修复 Kubelet 重启导致的容器 Ready 状态变化问题。​
v1.26.10​
vke.15​
强化扩展调度器,支持 mGPU 抢占调度。​
v1.26.10​
vke.14​
强化扩展调度器,支持感知 VCI 资源库存。​
v1.26.10​
vke.13​
强化 API Server 自签名证书。​
v1.26.10​
vke.12​
  • 强化 Kubelet,支持配置容器资源视图。​
  • 强化 Kubelet,支持通过 Annotation 配置被驱逐 Pod 的优雅退出时间。​
  • 修复扩展调度器负载感知调度异常问题。​
v1.26.10​
vke.11​
修复 runc 容器逃逸漏洞 CVE-2024-21626。​
v1.26.10​
vke.10​
增强弹性资源优先级调度功能,支持按比例调度和触发 Cluster Autoscaler 扩容。​
v1.26.10​
vke.9​
修复扩展调度器配置 MultiPoint 插件时偶现 Pod 无法调度的问题。​
v1.26.10​
vke.8​
强化 API Server 参数配置,保证与社区版本的一致性。​
v1.26.10​
vke.7​
同步原生 Kubernetes 社区 v1.26.10 版本代码。​
v1.26.6​
vke.6​
强化 API Server,修复漏洞 CVE-2023-44487 和 CVE-2023-39325。​
v1.26.6​
vke.5​
强化扩展调度器,避免缓存穿透 ETCD 特性。​
v1.26.6​
vke.4​
修复扩展调度器重调度 Pod 真实负载同步异常问题。​
v1.26.6​
vke.3​
强化扩展调度器,支持调度过程中将节点信息注入 Pod。​
​
Kubernetes 社区版本解读​
重大更新​
  • 临时容器特性进入 Stable 阶段,该特性支持在由于容器崩溃(Crash)或容器镜像不包含调试工具而导致 kubectl exec 无用时,在现有 Pod 中运行临时容器。详情请参见 临时容器特性。​
  • cgroups v2 进入 Stable 阶段,该特性用来约束分配给进程的资源。详情请参见 cgroups v2文档。​
  • 在 Kubernetes v1.25,进一步优化 Kubernetes 对 Windows 系统的支持。​
  • 在 Kubernetes v1.25,网络策略中的 EndPort 字段进入 GA 阶段。详情请参见 网络策略端口范围。​
  • 在 Kubernetes v1.25,本地临时容器存储容量隔离进入 GA 阶段,支持配置 Pod 与本地临时存储的容量隔离。详情请参见 本地临时容器存储容量隔离。​
  • 在 Kubernetes v1.25 ,CSI 临时数据卷升级为稳定版本,CSI 临时数据卷不允许通过 PV/PVC 在 Pod 里直接指定 CSI 数据卷。详情请参见 CSI 临时数据卷。​
  • 在 Kubernetes v1.25,引入 KMS v2 alpha1 API 以提升性能,实现密钥轮换与可观察性改进。 此 API 使用 AES-GCM 替代了 AES-CBC,通过 DEK 实现静态数据加密(Kubernetes Secrets),且支持通过 AES-GCM 和 AES-CBC 进行读取。详情请参见 使用 KMS provider 进行数据加密指南。​
  • 在 Kubernetes v1.25,如果Pod Status字段将PodHasNetwork置为True,表示 Pod 运行时沙箱被成功初始化创建,并已配置网络。当PodHasNetwork置为True后,Kubelet 才会开始拉取容器镜像,因此该字段可用于更准确地反映容器初始化延迟的服务水平指标(SLI)。详情请参见 PodHasNetwork 和 Initialized Condition 的区别。​
  • 在 Kubernetes v1.25,StatefulSet 的 minReadySeconds 特性进入 Stable 阶段,允许每个 Pod 等待一段预期时间来减缓 StatefulSet 的滚动上线。详情请参见 MinimumReadySeconds。​
  • 在 Kubernetes v1.25,DaemonSet 的 maxSurge 特性进入 Stable 阶段,允许 DaemonSet 在滚动更新期间,在一个节点上运行该 DaemonSet 的多个 Pod,进一步减少更新过程中 DaemonSet 的停机时间。详情请参见 DaemonSet 滚动更新。​
  • 在 Kubernetes v1.25,对使用 User Namespace 运行 Pod 提供 Alpha 支持,将 Pod 内的 root 用户映射到容器外的非零 ID,使得从容器角度看是 root 身份运行,而从主机角度看是常规的非特权用户。详情请参见 对 user namespace 运行 Pod 提供支持。​
  • 在 Kubernetes v1.25,新增 RetroactiveDefaultStorageClass 特性门控,用于更改默认 StorageClass 被分配到PersistentVolumeClaim 的方式,启用此特性后,未分配 StorageClass 的 PVC 会被自动更新分配对应的 StorageClass,不再需要删除重建。​
  • 在 Kubernetes v1.25,新增 JobPodFailurePolicy 特性,允许配置 Job 根据容器退出码和 Pod 状况来指定 Pod 失效的处理方法,该特性在 v1.26 进入 Beta 阶段。详情请参见 Job 配置 Pod 失效策略。​
  • 在 Kubernetes v1.25,修复 PodTopologySpread 特性在滚动更新期间 Pod 预期外约束分布不均的情况。​
  • 在 Kubernetes v1.26 不再支持 CRI v1alpha2 且要求容器运行时必须支持 CRI v1,即 Kubernetes v1.26 最低要求使用 Containerd 1.6,升级集群节点时,需要先将 Containerd 升级到 1.6.0 及以上版本。​
  • 在 Kubernetes v1.26,新增动态资源分配功能,用于 Pod 之间和 Pod 内部容器之间请求、共享资源,支持用户提供参数初始化资源。该功能处于 Alpha 阶段,需要启用 DynamicResourceAllocation 特性门控和resource.k8s.io/v1alpha1 API 组,需要为待管理的特定资源安装驱动程序。详情请参见 Alpha API For Dynamic Resource Allocation。​
  • 在 Kubernetes v1.26,节点非优雅关闭进入 Beta 阶段,需要启用 NodeOutOfServiceVolumeDetach 特性门控。当节点故障时,故障节点上的 Pod 会一直处于 Terminating(停止)状态,也无法删除 VolumeAttachments。节点非优雅关闭要求用户手动为 Node 添加out-of-service污点,将 Pod 移动到新的运行节点。待节点恢复后还需要手动移除该污点。​
  • 在 Kubernetes v1.26,支持在挂载时将 Pod fsGroup 传递给 CSI Driver,取代 Kubelet 去更改卷中文件和目录的权限。详情请参见 CSI Driver fspGrou Support。​
  • 在 Kubernetes v1.26,新增 Pod Scheduling Readiness 特性门控,该特性支持配置 Pod 被调度器何时开始调度的时间。当 Pod 配置 SchedulingGated 后,调度器会忽略该 Pod,不再调度该 Pod。​
  • 在 Kubernetes v1.26,CPU Manager 进入 GA 阶段,Kubelet 通过 CPU Manager 给容器分配独占 CPU,支持三个不同的策略选项。详情请参见控制节点上的 CPU 管理策略。​
  • 在 Kubernetes v1.26,支持跨 Namespace 的存储数据源进入 Alpha 阶段,允许为 PersistentVolumeClaim 指定属于不同的 Namespace 数据源。​
  • 在 Kubernetes v1.26,支持为 PodDisruptionBudget 配置不健康 Pod 的驱逐策略,通过设置.spec.unhealthyPodEvictionPolicy=AlwaysAllow来驱逐不健康 Pod 的行为不受 PDB 干扰。该特性处于 Aplha 阶段,需要启用 PDBUnhealthyPodEvictionPolicy 特性门控。详情请参见 不健康 Pod 的驱逐策略。​
  • 在 Kubernetes v1.26,APF prioritylevelconfigurations 资源加了两个spec字段,支持从其他优先级的规则借用限流槽位。详情请参见 PriorityLevelConfigurations。​
  • 在 Kubernetes v1.26,容器 preStop 和 postStart 生命周期函数中 httpGet 将遵循scheme和headers字段配置,支持设定自定义的 Headers 和使用 HTTPS,可以在 Kubelet 配置--feature-gates=ConsistentHTTPGetHandlers=false以关闭该功能。​
  • 在 Kubernetes v1.26,支持通过 Annotations:"storageclass.kubernetes.io/is-default-class"设置多个 StorageClass,Admission Plugin 会选择出最新的 StorageClass 作为默认值而不再抛出异常。​
  • 在 Kubernetes v1.26,kube-controller-manager 支持设置--concurrent-horizontal-pod-autoscaler-syncs来设定 HPA(Horizontal Pod Autoscaler)控制器的 Workers 数。​
  • 在 Kubernetes v1.26,新增 HPA 标签选择器校验,当多个 HPA 标签选择器指向同一个 Pod 负载时,这些 HPA 将失效并上报 AmbiguousSelector 事。​
废弃和移除功能​
  • 在 Kubernetes v1.25,Kubelet 通过 IPTablesCleanup 特性门控对 IPTables 链所有权进行清理,详情请参见 清理 IPTables 链所有权。​
  • 在 Kubernetes v1.25,kube-controller-manager 命令行参数移除deleting-pods-qps、deleting-pods-burst、register-retry-count参数。​
  • 在 Kubernetes v1.25 ,kube-apiserver 移除--service-account-api-audiences启动参数,替换为--api-audiences。​
  • 在 Kubernetes v1.26,移除 GlusterFS 驱动,移除使用 CSI 的 OpenStack 存储(Cinder 卷类型)in-tree 插件代码。​
  • 在 Kubernetes v1.26,从 client-go 和 kubectl 中移除内嵌的特定云厂商身份验证代码,可选使用 身份验证插件机制 替代。​
  • 在 Kubernetes v1.26,kubectl 开始废弃--prune-whitelist参数,替换为--prune-allowlist。​
  • 在 Kubernetes v1.26,移除 动态 kubelet 配置 特性门控及其在 kube-apiserver 中的代码。​
  • 在 Kubernetes v1.26,kube-apiserver 命令行参数开始废弃--master-service-namespace参数。​
  • 在 Kubernetes v1.26,kubectl run 命令行参数正式标记弃用,包括:--cascade、--filename、--force、--grace-period、--kustomize、--recursive、--timeout、--wait。​
  • 在 Kubernetes v1.26,移除 kube-proxy userspace 模式,已弃用一年多的userspace代理模式不再受 Linux 或 Windows 支持(详情请参见 Remove kube-proxy userspace modes)。Linux 用户应使用iptables或ipvs,Windows 用户应使用kernelspace,当前使用--mode userspace会失败。Windows winkernel kube-proxy 不再支持 Windows HNS v1 APIs。​
API 版本变更​
  • 在 Kubernetes v1.25,移除batch/v1beta1版本 API 的 CronJob(定时任务),继续提供 Kubernetes v1.21 版本开始可用的batch/v1版本 API。​
  • 在 Kubernetes v1.25,移除discovery.k8s.io/v1beta1版本 API 的 EndpointSlice(端点切片),继续提供 Kubernetes v1.21 版本开始可用discovery.k8s.io/v1版本 API。​
  • 在 Kubernetes v1.25,移除events.k8s.io/v1beta1版本 API 的 Event,继续提供 Kubernetes v1.21 版本开始可用batch/v1版本 API,具体字段变更如下:​
  • type字段只能设置为Normal和Warning之一。​
  • involvedObject字段被更名为regarding。​
  • action、reason、reportingController和reportingInstance字段,在创建新的events.k8s.io/v1 版本 API 的 Event 中都是必需的字段。​
  • 使用eventTime,而不是已被弃用的firstTimestamp字段(该字段已被更名为deprecatedFirstTimestamp,且不允许出现在新的events.k8s.io/v1 Event 对象中)。​
  • 使用series.lastObservedTime,而不是已被弃用的lastTimestamp字段(该字段已更名为deprecatedLastTimestamp,且不允许出现在新的events.k8s.io/v1 Event 对象中)。​
  • 使用series.count,而不是已被弃用的count字段(该字段已更名为deprecatedCount,且不允许出现在新的events.k8s.io/v1 Event 对象中)。​
  • 使用reportingController,而不是已被弃用的source.component字段(该字段已更名为deprecatedSource.component,且不允许出现在新的events.k8s.io/v1 Event 对象中)。​
  • 使用reportingInstance,而不是已被弃用的source.host字段(该字段已被更名为deprecatedSource.host,且不允许出现在新的events.k8s.io/v1 Event 对象中)。​
  • 在 Kubernetes v1.25,移除 HorizontalPodAutoscaler 的autoscaling/v2beta2版本 API。​
  • 在 Kubernetes v1.25 ,移除 PodDisruptionBudget 的policy/v1beta1版本 API,继续提供policy/v1版本 API。​
  • 在 Kubernetes v1.25 ,移除 RuntimeClass 的node.k8s.io/v1beta1版本 API,继续提供node.k8s.io/v1版本 API。​
  • 在 Kubernetes v1.26,移除 FlowSchema 和 PriorityLevelConfiguration 的flowcontrol.apiserver.k8s.io/v1beta1版本 API,继续提供flowcontrol.apiserver.k8s.io/v1beta2和flowcontrol.apiserver.k8s.io/v1beta3。​
  • 在 Kubernetes v1.26,kubeconfig 中加入DisableCompression字段,默认关闭。​
参考链接​
关于 Kubernetes v1.26 版本的性能和功能演进的更多信息,请参见:​
​
最近更新时间:2026.09.15 16:51:49
这个页面对您有帮助吗?
有用
有用
无用
无用