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

容器服务

复制全文
下载 pdf
Kubernetes 版本发布记录
(停止维护)容器服务发布 Kubernetes v1.24 版本说明
复制全文
下载 pdf
(停止维护)容器服务发布 Kubernetes v1.24 版本说明
火山引擎容器服务(VKE)严格遵循社区一致性认证。本文介绍容器服务发布 Kubernetes v1.24 版本所做的变更说明。​
说明​
容器服务(VKE) 即将于北京时间 2025年4月30日 起不再提供 Kubernetes 1.24 版本技术支持。更多说明,请参见 产品公告。​
版本发布说明​
表1:核心组件及说明​
​
核心组件​
当前版本号​
注意事项​
Kubernetes​
v1.24.17​
无​
Containerd Runtime​
1.6.21​
无​
ETCD​
3.5.5​
无​
CoreDNS​
1.8.6​
无​
​
表2:Kubernetes 版本与容器服务版本对应关系​
​
Kubernetes 版本​
VKE 版本​
发布说明​
v1.24.17​
vke.45​
修复了 kube-controller-manager 中 pvcprotection controller 在删除 PVC 时,PVC 长期处于 Terminating 状态无法释放的问题。​
v1.24.17​
vke.44​
kube-apiserver 支持用户自建 Prometheus 采集控制面指标。​
v1.24.17​
vke.42​
优化 kube-apiserver 对 ETCD 超过 2 GiB 资源的请求逻辑。​
v1.24.17​
vke.41​
  • 支持 Memory 类型 EmptyDir 卷配置挂载选项。​
  • 支持透传 mGPU 调度分配结果到容器环境变量。​
v1.24.17​
vke.40​
完善调度器在 mGPU 调度场景下,对于 GPU 卡故障的处理。​
v1.24.17​
vke.39​
强化 API Server,支持 VCI Pod 注入 Sidecar 容器。​
v1.24.17​
vke.38​
强化扩展调度器,支持 mGPU 在离线混部。​
v1.24.17​
vke.37​
修复漏洞 CVE-2024-10220。​
v1.24.17​
vke.36​
同步 Kubernetes 社区 v1.24.17 代码。​
v1.24.15​
vke.35​
强化扩展调度器,支持感知 Virtual Kubelet Service 变化。​
v1.24.15​
vke.34​
强化扩展调度器,支持 NUMA 拓扑感知调度和 RDMA 拓扑感知调度。​
v1.24.15​
vke.33​
修复扩展调度器感知 vePFS 存储时不支持 Local Path PV 的问题。​
v1.24.15​
vke.32​
  • 强化扩展调度器,mGPU 跨卡共享功能支持使用全量算力分配策略。​
  • 强化扩展调度器,支持感知 vePFS 存储。​
v1.24.15​
vke.31​
修复扩展调度器插件初始化异常问题。​
v1.24.15​
vke.30​
优化核心组件发布规范。​
v1.24.15​
vke.29​
修复 Kubelet 重启导致的容器 Ready 状态变化问题。​
v1.24.15​
vke.28​
强化扩展调度器,支持 mGPU 抢占调度。​
v1.24.15​
vke.27​
强化扩展调度器,支持感知 VCI 资源库存。​
v1.24.15​
vke.26​
强化 API Server 自签名证书。​
v1.24.15​
vke.25​
  • 强化 Kubelet,支持配置容器资源视图。​
  • 强化 Kubelet,支持通过 Annotation 配置被驱逐 Pod 的优雅退出时间。​
  • 修复扩展调度器负载感知调度异常问题。​
v1.24.15​
vke.24​
修复 runc 容器逃逸漏洞 CVE-2024-21626。​
v1.24.15​
vke.23​
  • 强化 Kubelet,支持根据调度侧的分配结果进行设备分配。​
  • 强化扩展调度器,支持 RDMA 网络拓扑感知调度。​
v1.24.15​
vke.21​
增强弹性资源优先级调度功能,支持按比例调度和触发 Cluster Autoscaler 扩容。​
v1.24.15​
vke.20​
修复扩展调度器配置 MultiPoint 插件时偶现 Pod 无法调度的问题。​
v1.24.15​
vke.19​
强化 API Server 参数配置,保证与社区版本的一致性。​
v1.24.15​
vke.18​
强化 API Server,优化参数配置方式。​
v1.24.15​
vke.17​
强化 API Server,修复漏洞 CVE-2023-44487 和 CVE-2023-39325。​
v1.24.15​
vke.16​
强化扩展调度器,避免缓存穿透 ETCD 特性。​
v1.24.15​
vke.15​
修复升级 Kubelet 后卸载存储卷异常的问题。​
v1.24.15​
vke.14​
强化扩展调度器,增强负载感知调度功能。​
v1.24.15​
vke.13​
  • 强化扩展调度器,支持拓扑感知调度。​
  • 修复扩展调度器重调度 Pod 真实负载同步异常问题。​
v1.24.15​
vke.12​
  • 强化扩展调度器,支持根据热点负载进行打散重新调度。​
  • 强化扩展调度器,支持调度过程中将节点信息注入到 Pod。​
v1.24.10​
vke.11​
强化 Kubelet,优化节点网络插件初始化逻辑。​
v1.24.10​
vke.10​
优化 Kubernetes 集群安装流程。​
v1.24.10​
vke.9​
修复扩展调度器初始化异常问题。​
v1.24.10​
vke.8​
优化扩展调度器配置。​
v1.24.10​
vke.7​
  • 强化扩展调度器,支持 mGPU 跨卡共享功能。​
  • 强化 Kubelet,修复 NetworkUnavailable Condition 问题。​
v1.24.10​
vke.6​
强化 API Server,避免缓存穿透 ETCD。​
v1.24.10​
vke.5​
  • 强化扩展调度器,支持负载感知调度。​
  • 强化 API Server 细粒度请求观测能力。​
  • 强化扩展调度器,支持 Capacity 调度。​
​
Kubernetes 社区版本解读​
重大更新​
  • 移除 Dockershim。​
  • 在 v1.20 版本中被废弃后,Dockershim 组件在 Kubernetes v1.24 版本的 kubelet 中移除。关于 Dockershim 移除对 Docker 支持的更多信息,请参见 Dockershim Removal FAQ。关于移除 Dockershim 的影响及反馈,请参见 GitHub issue。​
  • 默认关闭 Beta API。​
  • 新的 Beta API 默认不会在集群中启用。现有 Beta API 及其更新版本将默认继续被启用。​
  • 签名发布制品。​
  • 发布制品时使用 Cosign 进行签名并验证已签名容器镜像,以提高软件发布流程的安全性。​
  • API Server 性能优化。​
  • 截至 v1.24.10 版本,Kubernetes 采用 Go 1.19.5 编译,受益于 Go 垃圾回收算法优化,API Server P99 调用延迟大幅下降,可支持负载增加约 25%。​
  • 结构化日志进入 Beta 阶段,kube-scheduler、kubelet 等组件切换为key="value"形式的结构化日志便于解析分析。详细信息,请参见 Introducing Structured Logs。​
  • 禁用自动创建 Secret。​
  • 默认启用 LegacyServiceAccountTokenNoAutoGeneration,不再为 ServiceAccount 自动创建 Secret。​
  • 默认开启 OpenAPI V3。​
  • 支持通过 CSIStorageCapacity 对象显示可用存储容量,减少使用存储卷的 Pod 因创建、挂载 Volume 失败而产生的调度延迟。​
  • NonPreemptingPriority 支持 Pod 优先级抢占,进入 GA 阶段。​
  • gRPC 探针升级为 Beta,可通过特性门控参数 GRPCContainerProbe 启用,无需暴露 HTTP Endpoint 或执行额外的可执行文件即可为 gRPC 应用配置 Kubernetes 原生的配置启动、存活和就绪性探测。​
  • Kubelet 配置镜像凭证提供者升级至 Beta 阶段,支持使用 exec 插件动态检索容器镜像仓库的凭据,而不是将凭据存储在节点的文件系统上。​
  • 允许为服务的静态 IP 地址分配软保留范围,避免 IP 分配给服务带来的冲突。​
  • Kubelet 中移除动态 Kubelet 配置。​
  • StatefulSet 默认支持 Pod 就绪的最小时间.spec.minReadySeconds;StatefulSetMinReadySeconds 进入 Beta 阶段。详细信息,请参见 Minimum Ready Seconds for StatefulSets。​
  • StatefulSet 支持配置maxUnavailable参数,便于滚动更新时可以更快地停止 Pods。​
  • 默认开启 JobReadyPods 特性,支持在 Job Status 中显示处于Ready状态的 Pods 数量。​
  • 当配置 OS 参数时,Kubelet 会默认拒绝.spec.OS与节点 OS 标签不匹配的 Pods。​
  • 在创建和更新双协议栈的时候Service.spec.ipFamilyPolicy为必填项,使用双协议栈的 Service 必须指明ipFamilyPolicy为“PreferDualStack”或者“RequireDualStack”。​
  • Client-go 在 Workqueue 中新增 Processing 状态,支持 Workqueue Shutdown 时等待队列中对象处理完成。​
  • kube-controller-manager 的健康检查会包含每一个控制器的健康检查。​
  • 默认不再支持 SHA-1 哈希算法验证证书签名。​
  • Kubelet 会在 Mangle 表中添加一个名为 KUBE-IPTABLES-HINT 的 iptables 链,需要在主机网络命名空间里修改 iptables 规则的容器化组件,可以使用它来更好的确认系统要使用iptables-legacy还是iptables-nft。​
  • kube-proxy 新增如下 2 个参数以支持在 Windows 上运行 kube-proxy:​
  • --forward-healthcheck-vip支持将到 Service VIP 的健康检查流量转发到 kube-proxy 的健康检查服务。​
  • --root-hnsendpoint-name指定根网络命名空间的 HNS 端点的名称。​
  • CronJob 新增可选字段timeZone,在开启特性 CronJobTimeZone 时,支持在特定的时区运行 CronJob。​
  • 丰富各组件监控指标:​
  • 新增指标webhook_fail_open_count指标用于监控 Webhook 失败。​
  • 新增指标admission_webhook_request_total指标,支持监控 Webhook 信息,包括 Webhook 名称、Admission 类型、请求动作、HTTP 状态码、请求是否被拒绝、请求资源的 Namespace 等。​
  • kube-proxy 新增指标sync_proxy_rules_no_local_endpoints_total,支持展示没有内部Endpoints 的服务数量。​
  • kubelet 新增指标kubelet_volume_stats_health_abnormal用于记录 Volume 健康状态。​
  • API Server 新增指标:controller_admission_duration_seconds、step_admission_duration_seconds、webhook_admission_duration_seconds、apiserver_current_inflight_requests和apiserver_response_sizes。除此之外,API Server 还新增了针对 LIST 请求的指标。​
  • kube-scheduler 新增指标 :pending_pods、preemption_attempts_total、preemption_victims、schedule_attempts_total、scheduling_attempt_duration_seconds(原e2e_scheduling_duration_seconds )、pod_scheduling_duration_seconds、pod_scheduling_attempts、framework_extension_point_duration_seconds、plugin_execution_duration_seconds和queue_incoming_pods_total。​
  • 使用evictions_total代替evictions_number指标。​
废弃功能​
  • Klog 废弃部分命令行参数,Kubernetes 正在简化组件日志。详细信息,请参见 System Logs。​
  • Kubeadm 在init、join和upgrade命令中废弃了--experimental-patches参数,--patches和--config不能混合使用。​
  • kube-log-runner 包含在 Release 的 TAR 包中,代替被废弃的--log-file参数。详细信息,请参见 kube-log-runner。​
  • 废弃指标scheduler_volume_scheduling_duration_seconds。​
  • 使用apiserver_longrunning_requests指标代替废弃的指标apiserver_longrunning_gauge。​
  • kubectl --dry-run必须指定--dry-run=(server|client|none)。​
  • 由于无法适用于双栈协议,弃用Service.Spec.LoadBalancerIP。​
  • kube-apiserver 移除参数--address、--insecure-bind-address、--port、--insecure-port=0。​
  • kube-controller-manager 和 kube-scheduler 移除启动参数--port=0和--address。​
  • kube-apiserver 的启动参数--audit-log-version和--audit-webhook-version仅支持audit.k8s.io/v1。​
  • Kubelet 移除启动参数--network-plugin,该启动参数仅当容器运行环境设置为 Docker 时才有效,会随着 Dockershim 一起删除。​
  • VolumeSnapshot v1beta1 CRD 在 Kubernetes v1.20 版本中被废弃,在 Kubernetes v1.24 版本中移除,需改用 v1 版本。​
  • 移除自 Kubernetes 1.11 版本就废弃的service annotation tolerate-unready-endpoints,使用Service.spec.publishNotReadyAddresses代替。​
  • 废弃metadata.clusterName字段,并将在下一个版本中删除。​
  • 去除了 kube-proxy 监听 NodePort 的逻辑,在 NodePort 与内核net.ipv4.ip_local_port_range范围有冲突的情况下,会偶发的 TCP 无法连接的情况,导致健康检查失败、业务异常等问题。升级前,请确保集群没有 NodePort 端口与任意节点net.ipv4.ip_local_port_range范围存在冲突。详细信息,请参见Kubernetes 社区 PR。​
  • Master 节点废弃node-role.kubernetes.io/master Label,使用node-role.kubernetes.io/control-plane(在 Kubernetes v1.20 版本引入)替代。​
  • Master 节点新增node-role.kubernetes.io/control-plane:NoSchedule Taint,旧Taint node-role.kubernetes.io/master:NoSchedule(在 Kubernetes v1.25 版本将被移除)保留。​
API 版本变更​
在 Kubernetes v1.23 版本后​
  • 移除rbac.authorization.k8s.io/v1alpha1,使用rbac.authorization.k8s.io/v1。​
  • 移除scheduling.k8s.io/v1alpha1,使用scheduling.k8s.io/v1。​
  • 废弃autoscaling/v2beta2,HorizontalPodAutoscaler v2 进入 GA 阶段。​
  • 移除client.authentication.k8s.io/v1alpha1,使用client.authentication.k8s.io/v1。​
  • 废弃 CSIStorageCapacity.storage.k8s.io/v1beta1,使用CSIStorageCapacity.storage.k8s.io/v1。​
  • 移除networking.k8s.io/v1alpha1网络 API。​
在 Kubernetes v1.22 版本后​
  • MutatingWebhookConfiguration 和 ValidatingWebhookConfiguration 资源不再支持admissionregisration.k8s.io/v1beta1版本 API,使用该版本创建的 WebhookConfiguration,需尽快替换为admissionregisration.k8s.io/v1版本,否则会导致配置创建失败。​
  • CustomResourceDefinition 不再支持apiextensions.k8s.io/v1beta1版本 API,使用该版本创建的自定义资源需尽快替换为apiextensions.k8s.io/v1版本,否则会导致自定义控制器调谐失败。​
  • APIService 资源不再支持apiregistration.k8s.io/v1beta1版本 API。使用该版本创建的 APIService 资源,需尽快替换为apiregistration.k8s.io/v1版本,否则会导致扩展 API 服务失败。​
  • TokenReview 资源不再支持authentication.k8s.io/v1beta1版本 API。使用该版本创建的资源需尽快使用authentication.k8s.io/v1版本替代,否则会导致授权验证失败。​
  • SubjectAccessReview 资源不再支持authorization.k8s.io/v1beta1版本 API。使用该版本创建的资源需尽快使用authorization.k8s.io/v1版本替代,否则会导致授权验证失败。​
  • CertificateSigningRequest 资源不再支持certificate.k8s.io/v1beta1版本 API。使用该版本创建的资源需尽快使用certificate.k8s.io/v1版本替代,否则会导致授权验证失败。​
  • Lease 资源不再支持coordination.k8s.io/v1beta1版本 API。使用该版本创建的资源需尽快使用coordination.k8s.io/v1版本替代,否则会导致选主失败,影响服务正常工作。​
  • Ingress 和 IngressClass 资源不再支持networking.k8s.io/v1beta1和extensions/v1beta1版本 API。使用该版本创建的资源需尽快使用networking.k8s.io/v1版本替代,否则会影响应用对外暴露服务。​
  • ClusterRole、ClusterRoleBinding、Role 和 RoleBinding 资源不再支持rbac.authorization.k8s.io/v1beta1版本 API。用该版本创建的 RBAC 资源需尽快使用rbac.authorization.k8s.io/v1版本替代,否则会影响应用集群内的权限服务。​
  • CSIDriver、CSINode、StorageClass 和 VolumeAttachment 资源不再支持storage.k8s.io/v1beta1 版本 API。用该版本创建的 CSI 资源需尽快使用storage.k8s.io/v1版本替代,否则会影响集群内的存储服务提供,使得集群内无法正常使用 CSI。​
  • PriorityClass 资源不再支持scheduling.k8s.io/v1beta1版本 API。用该版本创建的PriorityClass 资源需尽快使用scheduling.k8s.io/v1版本替代,否则会导致操作失败。​
在 Kubernetes v1.21 版本后​
  • 废弃容器组安全策略(PodSecurityPolicy,PSP)并计划在 v1.25 版本中完全移除。​
  • 废弃通过Service topologyKeys字段实现服务流量拓扑感知的特性,由拓扑感知特性取代。​
参考链接​
关于 Kubernetes v1.24 版本的性能和功能演进的更多信息,请参见:​
​
最近更新时间:2026.09.15 16:51:49
这个页面对您有帮助吗?
有用
有用
无用
无用