- 文档首页
容器服务
容器服务 VKE
产品动态
Kubernetes 版本发布记录
(停止维护)容器服务发布 Kubernetes v1.24 版本说明
Kubernetes 版本发布记录
(停止维护)容器服务发布 Kubernetes v1.24 版本说明
(停止维护)容器服务发布 Kubernetes v1.24 版本说明
火山引擎容器服务(VKE)严格遵循社区一致性认证。本文介绍容器服务发布 Kubernetes v1.24 版本所做的变更说明。
说明
容器服务(VKE) 即将于北京时间 2025年4月30日 起不再提供 Kubernetes 1.24 版本技术支持。更多说明,请参见 产品公告。 版本发布说明
表1:核心组件及说明
表2:Kubernetes 版本与容器服务版本对应关系
Kubernetes 社区版本解读
重大更新
- 新的 Beta API 默认不会在集群中启用。现有 Beta API 及其更新版本将默认继续被启用。
- 发布制品时使用 Cosign 进行签名并验证已签名容器镜像,以提高软件发布流程的安全性。
- 截至 v1.24.10 版本,Kubernetes 采用 Go 1.19.5 编译,受益于 Go 垃圾回收算法优化,API Server P99 调用延迟大幅下降,可支持负载增加约 25%。
- 默认启用 LegacyServiceAccountTokenNoAutoGeneration,不再为 ServiceAccount 自动创建 Secret。
- 支持通过 CSIStorageCapacity 对象显示可用存储容量,减少使用存储卷的 Pod 因创建、挂载 Volume 失败而产生的调度延迟。
- NonPreemptingPriority 支持 Pod 优先级抢占,进入 GA 阶段。
- gRPC 探针升级为 Beta,可通过特性门控参数 GRPCContainerProbe 启用,无需暴露 HTTP Endpoint 或执行额外的可执行文件即可为 gRPC 应用配置 Kubernetes 原生的配置启动、存活和就绪性探测。
- Kubelet 配置镜像凭证提供者升级至 Beta 阶段,支持使用 exec 插件动态检索容器镜像仓库的凭据,而不是将凭据存储在节点的文件系统上。
- 允许为服务的静态 IP 地址分配软保留范围,避免 IP 分配给服务带来的冲突。
- Kubelet 中移除动态 Kubelet 配置。
- 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指标。
废弃功能
- 废弃 FlexVolume ,推荐使用 Out-of-tree CSI 驱动方式。详细信息,请参见 。
- 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