首页
/ Kubernetes 1.33 发布深度解析:Pod 原地垂直扩缩容进入 Beta、nftables 模式 GA 与安全修复全景

Kubernetes 1.33 发布深度解析:Pod 原地垂直扩缩容进入 Beta、nftables 模式 GA 与安全修复全景

2026-09-06 17:34:59作者:郁楠烈Hubert

本文基于 Kubernetes 仓库中的 CHANGELOG-1.33.md 逐版本梳理 v1.33.0 至 v1.33.13 的完整演进脉络,覆盖发布前置的强制升级注意事项(Urgent Upgrade Notes)、GA/Beta 特性清单、ServiceCIDR 与 DRA 等新 API、两个 CVE 漏洞修复以及补丁版本的依赖升级轨迹。读完本文,你可以判断集群升级到 1.33 需要哪些改造(特性门、插件代码、kube-proxy 模式)、哪些 API 即将废弃,并能通过仓库源码定位关键特性的实现依据。

1. 发布构成:从 alpha 到补丁版本的完整版本线

v1.33 版本线在 CHANGELOG-1.33.md 中自下而上记录,共包含 4 个预发布版本与 14 个 GA/补丁版本:

阶段 版本 关键说明
Alpha v1.33.0-alpha.1 ~ v1.33.0-alpha.3 特性门陆续定型:SidecarContainers GA、User Namespaces 默认开启、nftables GA 均在此阶段落地
Beta v1.33.0-beta.0 引入 DRA 设备污点、LeaseCandidate API、流式 List 响应等
RC v1.33.0-rc.0 / v1.33.0-rc.1 rc.0 记录 CrashLoopBackOff 紧急升级说明;rc.1 修复 ServiceCIDR 双栈对象更新问题
GA v1.33.0 完整特性基线,构建于 Go 1.24.2
补丁 v1.33.1 ~ v1.33.13 修复回退与 CVE;构建 Go 版本从 1.24.x 演进到 1.25(v1.33.11 起)再到 1.25.11(v1.33.13)

每个版本条目都遵循统一结构:Downloads(源码包、Client/Server/Node 三类二进制及 SHA-512 校验和、容器镜像列表)→ Changelog since vXChanges by Kind(Deprecation / API Change / Feature / Documentation / Bug or Regression / Other)→ Dependencies(Added / Changed / Removed)。补丁版本中大量条目为 _Nothing has changed._,说明该区间无第三方依赖变动。

构建工具链演进:v1.33.0 以 Go 1.24.2 构建;补丁线中依次出现 Go 1.24.3/1.24.4(v1.33.2)、1.24.5(v1.33.4)、1.24.6/1.24.7/1.24.9(v1.33.5/6)、1.24.10/1.24.11(v1.33.7)、1.24.12(v1.33.8)、1.24.13(v1.33.9)、1.25(v1.33.11)、1.25.9(v1.33.11)、1.25.11(v1.33.13)。若集群对 Go 运行时行为敏感(如依赖 CGO 的 CSI 驱动或 Windows 节点组件),应优先选择较新的补丁版本。

2. 升级前必读:Urgent Upgrade Notes

v1.33.0、v1.33.0-rc.0 与 v1.33.0-alpha.1 三个版本段落都带“(No, really, you MUST read this before you upgrade)”章节,汇总后共有四项强制注意事项:

2.1 CrashLoopBackOff 退避时间可通过特性门压缩

新增 ReduceDefaultCrashLoopBackOffDecay 特性门(见 kube_features.go#L967),开启后容器在 CrashLoopBackOff 状态下重启的初始延迟与最大延迟被收敛到推荐值:初始 1s、最大 60s。如果你同时在用 KubeletCrashLoopBackOffMax 特性门和按节点配置的 CrashLoopBackOff.MaxContainerRestartPeriod,实际生效值按官方文档的冲突解决策略计算。这对长尾崩溃恢复的批处理/定时任务是显著行为变化,升级前需评估工作负载对快速重启的承受力。

2.2 CSI 驱动必须修正 IsLikelyNotMountPoint 的返回值语义

调用 IsLikelyNotMountPoint 的 CSI 驱动不能把返回 false 当作“该路径一定是挂载点”。返回值只表示“大概率不是挂载点”;文件是不规则文件(irregular file)但并非挂载点的情况是允许的。各驱动需按自身用途正确使用该返回值,否则升级后可能出现卷挂载误判。

2.3 nftables 内核版本检查环境变量的语义被修正

KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK 在 nftables proxier 中的行为被修正:内核版本检查仅当该变量被显式设置为非空值时才跳过。此前任何取值(包括空串)都会触发跳过逻辑,导致不满足内核要求的节点误报“可用”。如果你依赖该变量绕过检查,请确认变量被显式设置为非空值。

2.4 调度插件开发者:UpdatePodTolerations 更名为 UpdatePodToleration

调度框架的动作类型 UpdatePodTolerations 更名为 UpdatePodToleration。自研调度插件如果实现了该动作类型,必须跟随重命名,否则升级后无法注册。

3. 进入 GA 与 Beta 的核心特性

v1.33 是特性毕业大年。以下条目按“GA(默认锁定开启)”与“Beta(默认开启)”分组,均摘自 v1.33.0 的 Feature/API Change 段落:

3.1 特性毕业为 GA

特性门 / 能力 1.33 中的状态 影响面
SidecarContainers GA,特性门锁定为默认值并将在 v1.36 移除 可重启 init 容器(sidecar)成为标准能力;LegacySidecarContainers 临时门(默认关闭、仅 v1.33 存在、v1.34 移除)用于回退到旧代码路径
kube-proxy nftables 模式 GA 通过 --proxy-mode nftables 或配置文件 mode: nftables 启用;iptables 仍是默认值。GA 不代表默认切换,需显式选择
MatchLabelKeys(PodAffinity/PodAntiAffinity) GA matchLabelKeys/mismatchLabelKeys 正式可用
InPlacePodVerticalScaling Beta 且默认开启(源码见 kube_features.go#L1674-L1678:1.27 Alpha → 1.33 Beta on → 1.35 GA) Pod 原地垂直扩缩容默认生效;1.33 起 API server 收到 resize 请求后不再把状态置为 Proposedstatus.resize 字段废弃,改由 PodResizeInProgress / PodResizePending 两个新 Condition 表达状态
递归只读挂载(RRO,KEP-3857) GA recursiveReadOnly 卷挂载成为标准行为
JobSuccessPolicyJobBackoffLimitPerIndex GA Job 成功策略与按 index 的退避上限成为默认行为
CRDValidationRatcheting GA CRD 声明式校验放宽策略落地
AnyVolumeDataSource GA PVC 可引用任意 VolumeDataSource
HonorPVReclaimPolicy GA PV reclaimPolicy 尊重语义固化
BtreeWatchCache GA API server watch 缓存 B+ 树实现固化
ServiceAccountTokenNodeBinding GA 并锁定开启 kube-apiserver 签发的 SA token 与节点绑定
MultiCIDRServiceAllocator stable(配套 DisableAllocatorDualWrite 降为 Beta、默认关闭) ServiceCIDR API 对象成为集群 Service CIDR 的正式载体,见 §5.2
NodeInclusionPolicyInPodTopologySpread Stable 拓扑分布中节点包含策略固化
CPUManager 策略选项(Policy Options)支持 GA cpuManagerPolicy 可携带选项参数
DistributeCPUsAcrossNUMA(策略选项) Beta 跨 NUMA 分发 CPU 成为 beta 能力
KubeletFineGrainedAuthz Beta、默认开启 kubelet 请求 API server 时使用细粒度 RBAC 权限
ServiceAccountNodeAudienceRestriction Beta、默认开启 NodeRestriction 准入校验 kubelet 请求 SA token 的 audience 必须来自 Pod spec 卷
UserNamespacesSupport 默认开启(Alpha 转默认) 用户命名空间 Pod 默认支持;相关 ProcMountType 同步升为默认开启的 Beta
DeclarativeValidation 默认开启(DeclarativeValidationTakeover 仍默认关闭) 声明式校验与手写校验的不一致通过指标暴露
RelaxedDNSSearchValidation Beta Pod search domains 允许单点号 “.” 或下划线 “_”
WinDSR(Windows kube-proxy) Beta、默认开启 Windows 节点 DSR 路由支持
调度器异步抢占(SchedulerAsyncPreemption Beta、默认开启 抢占不再阻塞调度主循环
SELinuxChangePolicy / SELinuxMount Beta(SELinuxMount 仍默认关闭) SELinux 标签变更与挂载控制
细粒度补充组策略(KEP-3619) Beta 调度到不支持节点时,supplementalGroupsPolicy: Strict 的 Pod 会被 kubelet 拒绝
RemoteRequestHeaderUID Beta、默认开启 聚合 API 请求透传 X-Remote-Uid 头;入站请求默认不信任,可用 --requestheader-uid-headers 显式开启
JobPodFailurePolicy 特性门移除(1.31 已 GA、无条件开启) 行为不变,仅清理门
CoordinatedLeaderElection Beta 新增 coordination.k8s.io/v1beta1LeaseCandidate API 类型
OrderedNamespaceDeletion Alpha 且默认开启 命名空间删除时先删 Pod 再删其他资源
SchedulerPopFromBackoffQ Beta、默认开启 activeQ 为空时从 backoffQ 取 Pod,消除退避队列的惩罚效应

同时,1.33 移除了多个已 GA 的特性门:CPUManagerPDBUnhealthyPodEvictionPolicyAppArmorAppArmorFieldsPersistentVolumeLastPhaseTransitionTimeKubeProxyDrainingTerminatingNodesJobPodFailurePolicyDisableCloudProvidersDisableKubeletCloudCredentialProviders,并删除了 kube-apiserver 的 --cloud-provider / --cloud-config 参数。若你的启动脚本或发行版配置还在传这些门/参数,升级时需要一并清理。

4. API 服务器与调度器性能改造

4.1 流式 List 响应:JSON 与 Protobuf 逐条编组

1.33 起,当 List 请求协商为 JSON 或 Protobuf 时,API server 改为逐个元素编组输出,大幅降低服务大集合时的内存占用。可用特性门 StreamingJSONListEncoding / StreamingCollectionEncodingToProtobuf 关闭流式回退到旧路径。配套地,Beta 的 WatchList 特性在 1.33 被默认禁用,kube-controller-manager 也不再选择开启 WatchListClient

4.2 其他调度与缓存改进

  • 新增 ListFromCacheSnapshot 特性门:允许从 watch cache 提供带精确 ResourceVersion 与 continuation 的 LIST。
  • 新增 apiserver_storage_digest 指标:每 5 分钟计算 etcd 与 watch cache 的摘要,便于定位存储与缓存不一致。
  • 未初始化缓存返回的错误现在附带 etcd 最后一次错误信息,便于排障。
  • 审计日志新增 apiserver.latency.k8s.io/authenticationapiserver.latency.k8s.io/authorization 注解,记录慢请求在认证/鉴权阶段的耗时。
  • 调度器侧:Pod 资源计算结果在 NodeInfo 中加入缓存、必需拓扑分布的调度性能改进、scheduler_cache_size 指标落地(旧名 scheduler_scheduler_cache_size 弃用,v1.34 移除);pod_scheduling_duration_seconds 被移除,请迁移到 pod_scheduling_sli_duration_seconds
  • /version 响应区分二进制版本与兼容性版本;/flagz 端点在 ComponentFlagz 开启时正确返回解析后的 flag 值。

5. 新 API 与新特性门:DRA、ServiceCIDR 与 Pod 元数据

5.1 Pod 元数据与调度行为变化

  • Pod .metadata.generation 开始随写入递增:新建 Pod 为 1,更新 spec 可变字段 +1;kubelet/kube-scheduler/kube-controller-manager 在 PodObservedGenerationTracking 门开启时向 Pod Condition 写入 observedGeneration
  • 通过 pods/binding 调度时,topology.k8s.io/zonetopology.k8s.io/regionkubernetes.io/hostname 三个标签自动从 Node 复制到 Pod,使 Downward API 可直接暴露节点拓扑而无需读取 Node 对象权限。
  • kubectl apply 对 labels/annotations 中的 null 值统一转为空字符串(与 typed JSON 解码一致),不再整段丢弃。
  • 创建 Pod 时开始校验 NodeSelectorRequirement 的取值。
  • 各写入 IP/CIDR 的控制器统一输出规范化格式;StrictIPCIDRValidation 门开启后,内置 API 的 IP/CIDR 字段禁止前导零八位组与 IPv4-mapped IPv6 值(关闭时创建此类对象会收到未来将拒绝的警告)。

5.2 ServiceCIDR 对象与 ValidatingAdmissionPolicy 示例

MultiCIDRServiceAllocator 转 stable 意味着集群 Service CIDR 可以通过 API 对象管理。发行版或管理员如需约束“新增 ServiceCIDR 不得与集群其他网络重叠/只允许特定网段/维持单 ServiceCIDR”,可用 VAP 实现。changelog 中给出的官方示例如下(完整 YAML 见 CHANGELOG-1.33.md 的 v1.33.0-alpha.1 段落):

apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicy
metadata:
  name: "servicecidrs.default"
spec:
  failurePolicy: Fail
  matchConstraints:
    resourceRules:
    - apiGroups:   ["networking.k8s.io"]
      apiVersions: ["v1","v1beta1"]
      operations:  ["CREATE", "UPDATE"]
      resources:   ["servicecidrs"]
  matchConditions:
  - name: 'exclude-default-servicecidr'
    expression: "object.metadata.name != 'kubernetes'"
  variables:
  - name: allowed
    expression: "['10.96.0.0/16','2001:db8::/64']"
  validations:
  - expression: "object.spec.cidrs.all(i , variables.allowed.exists(j , cidr(j).containsCIDR(i)))"
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicyBinding
metadata:
  name: "servicecidrs-binding"
spec:
  policyName: "servicecidrs.default"
  validationActions: [Deny,Audit]

配套 Bug 修复(v1.33.0-rc.1 与 v1.33.0):当 kube-apiserver 的 --service-cluster-ip-range 从单栈改为双栈时,默认 ServiceCIDR 对象更新与双栈 Service 对象创建此前会出错,已修复。v1.33.11 还修复了 MultiCIDRServiceAllocator 开启且命名空间数量巨大时 API server 升级启动失败的问题(IP 修复控制器现会对未就绪准入插件的 Forbidden 错误重试)。

5.3 动态资源分配(DRA)

1.33 对 DRA 做了成体系增强:

  • 设备污点(Device Taints):DRA 驱动或管理员可把设备标记为不可用从而阻止分配;视污点严重性与 claim 是否容忍,运行中 Pod 也可能被驱逐。
  • 分区设备:新门 DRAPartitionableDevices(启用后支持可分区设备分配);DRAResourceClaimDeviceStatus 改为默认开启,驱动可上报每个已分配设备的状态数据。
  • admin 命名空间:只有能访问带 kubernetes.io/dra-admin-access 标签的 admin 命名空间的用户,才能在其中创建带 adminAccess 字段的 ResourceClaim/ResourceClaimTemplate,也只有他们能在 Pod/Deployment spec 中引用这些对象。同时,具命名空间 edit 角色的普通用户获得 resourceclaimsresourceclaims/statusresourceclaimtemplates 的读权限与后两者的写权限。
  • 优先级选择列表(one-of):一个设备请求可用按优先级排列的选择标准列表满足,与 §7 的 “All 设备语义” 变化配合使用。
  • All 设备语义收紧:1.32 及以下向无设备节点调度时直接不分配设备;1.33 起只挑选至少有一个设备的节点。若需要“无设备也继续调度”语义,可用优先级列表:第一候选 “all”,第二候选 count: 0
  • 配额上限:同一 ResourceClaim 可被 256 个 Pod 共用(原 32)。注意:若该放宽已在生产使用,不支持降回 1.32(旧版本会拒绝更新 status.reservedFor 超过 32 条目的 claim)。
  • CEL 修复:使用属性字符串的 CEL 表达式因成本估计不全曾超成本限制,已修复;NetworkDeviceData 中的 IP 地址校验更严格。
  • 调度回归修复:v1.33.1 修复了每个 ResourceClaim 可分配设备数被误降到 16 的问题,恢复到 32。
  • kubelet 侧:DRA 驱动插件(仅此类 DaemonSet)支持 maxSurge > 0 滚动更新,需驱动通过 k8s.io/dynamic-resource-allocation/kubeletplugin 助手包声明支持。
  • 静态 Pod 漏洞封堵(v1.33.2):静态 Pod 此前可引用任意 ResourceClaim,虽被健全性检查拦下不会运行,但引用本身不再被允许。

5.4 其他值得注意的新门/新字段

  • MutableCSINodeAllocatableCount(Alpha):开启后 CSINode.Spec.Drivers[*].Allocatable.Count 可变,CSIDriver 新增 NodeAllocatableUpdatePeriodSeconds 字段,周期性刷新节点可分配卷容量,避免陈旧信息卡住有状态 Pod 调度。
  • HPAConfigurableTolerance(Alpha):HPA 新增 tolerance 字段,覆盖集群级默认。
  • ReduceDefaultCrashLoopBackOffDecay:见 §2.1。
  • InPlacePodVerticalScaling 相关新门:InPlacePodVerticalScalingExclusiveCPUs(Alpha);1.33 支持对 sidecar 的 Pod 原地垂直扩缩容,且 resize 执行错误会反映在 PodResizeInProgress Condition 中;Swap 开启且 memory ResizePolicy 非 RestartContainer 的容器禁止原地 resize。
  • StopSignal 容器生命周期:可配置自定义停止信号。
  • Pod 级 hugepage 资源:Pod API 支持在 spec 级声明 hugepage 资源(Pod-level resources)。
  • kubelet 新配置:KubeletConfiguration.subidsPerPodMergeDefaultEvictionSettings 控制驱逐默认值与配置值的合并优先级;镜像认证跟踪使 kubelet 跨重启记录成功拉取镜像所需的认证信息,IfNotPresent 也可能触发拉取以完成再认证。
  • 节点状态开始上报 swap 容量(node.status.nodeSystemInfo);节点指标新增 PSI(Pressure Stall Information)。

6. 废弃项与兼容性风险

废弃/移除项 说明
v1 Endpoints API 正式废弃(不删除),所有用户应迁移到 EndpointSlice;Endpoints 控制器创建的对象现带标识标签
Pod status.resize 废弃且不再被写入,改用 PodResizeInProgress / PodResizePending Condition
service.kubernetes.io/topology-mode 注释 不随 hints 字段 GA,保留仅为向后兼容;拓扑感知路由请改用 Service 的 spec.trafficDistribution
resource.k8s.io/v1beta1 废弃,计划 1.36 移除,请使用 v1beta2
WatchFromStorageWithoutResourceVersion 废弃且不可再开启
StorageNamespaceIndexSeparateCacheWatchRPC 翻转为 false 并弃用
StorageCapacityScoring(Alpha、默认关) 取代 VolumeCapacityPriority:默认从“偏好最小可分配”变为“偏好最大可分配”,使用动态存储容量评分的调度行为已变化
apidiscovery.k8s.io/v2beta1 默认禁用
InPlacePodVerticalScalingAllocatedStatus 废弃不再使用,ContainerStatus.AllocatedResources 改由 InPlacePodVerticalScaling 门守护
指标 移除 pod_scheduling_duration_seconds(迁移到 pod_scheduling_sli_duration_seconds);scheduler_scheduler_cache_size 弃用;CoreDNS 部分指标改名
工具依赖 CoreDNS 升级至 v1.12.0、CNI 插件 v1.6.2、cri-tools v1.32.0

StatefulSet 侧还有一个校验收紧:新建 StatefulSet 的 .spec.serviceName 必须通过 DNS1123 校验(此前存量无效值的对象本就无法创建 Pod,建议删除重建);OpenAPI 中该字段也修正为可选。

7. 两个 CVE:修复原理与源码定位

v1.33 补丁线包含两个 kube-apiserver 安全公告,均与 NodeRestriction 准入控制器相关:

7.1 CVE-2025-4563(v1.33.2 修复):节点绕过 DRA 鉴权检查

开启 DynamicResourceAllocation 特性门时,NodeRestriction 在 Pod 状态更新阶段会校验资源 claim 状态,但在 Pod 创建阶段没有做等价校验。被攻陷的节点可以创建引用未授权动态资源的 mirror pod,形成提权路径。影响版本 kube-apiserver v1.32.0–v1.32.5、v1.33.0–v1.33.1;修复版本 v1.32.6、v1.33.2。CVSS 2.7(Low)。

7.2 CVE-2025-5187(v1.33.4 修复):节点通过 OwnerReference 自删

NodeRestriction 允许节点用户对自身节点对象做 create/patch(不允许 delete),但此前不阻止 patch ownerReferences。节点把自己挂到一个集群作用域资源(或随后被删除的资源)的 OwnerReference 上后,垃圾回收器会连带删除该 Node 对象;随后节点可带篡改的 taints/labels 重建自身。影响版本 v1.31.0–v1.31.11、v1.32.0–v1.32.7、v1.33.0–v1.33.3;修复版本 v1.31.12、v1.32.8、v1.33.4。CVSS 6.7(Medium)。

源码层面可直接验证修复落点:noderestriction 准入实现 中对节点自更新增加了对比——

// Don't allow a node to update its own ownerReferences.
if !apiequality.Semantic.DeepEqual(node.OwnerReferences, oldNode.OwnerReferences) {
    return admission.NewForbidden(a, fmt.Errorf("node %q is not allowed to modify ownerReferences", nodeName))
}

对应单测 admission_test.go 中带有 node "mynode" is not allowed to modify ownerReferences 断言的用例,覆盖添加、替换 ownerReferences 的场景。运行 1.33.0–1.33.3 的集群应尽快升级到 ≥ v1.33.4(或对应 1.31.12 / 1.32.8)。

8. 补丁版本要点速览(v1.33.1 – v1.33.13)

版本 代表性修复
v1.33.1 StatefulSet revisionHistoryLimit 为负引发的 panic 与校验;1.32 回归修复(postStart hook 起不来、kubelet 重启后节点状态与证书续期失败);kube-proxy UDP 高 CPU 问题;Windows HNS 端点回归
v1.33.2 CVE-2025-4563;静态 Pod 引用任意 ResourceClaim 漏洞封堵;HPA --for=create 标签选择修复;Windows kube-proxy ModifyLoadBalancer 匹配 HNS 状态
v1.33.3 新 Job 创建 Pod 延迟异常;1.33 分页 LIST 回退 etcd(缓存失效)回归;etcd learner 提升(promotion)误报
v1.33.4 CVE-2025-5187;kube-scheduler 聚合容器 spec+status 资源请求时的 nil panic(1.33 回归)
v1.33.5/6 kubeadm v1beta3 Timeouts.EtcdAPICall 在 v1beta4 下不生效的修复;SELinux 告警控制器事件行为修正;kube-proxy nftables iif vs iifname 匹配错误(导致无法识别节点本地流量);externalTrafficPolicy: Local 下无本地点 Pod 访问 LoadBalancer ExternalIP 被丢弃的修复(与 iptables/IPVS 对齐);nftables 模式 GA 后的一系列回退修复
v1.33.7 VAP/MAP 的 ResolverTypeProvider 数据竞争(策略行为不确定);1.30+ 新建命名空间中拦截命名空间对象的策略误报 “namespace not found”;CRD 声明 status 子资源但 schema 无 status 属性时 kube-apiserver 校验 panic;kubeadm etcd-join 阶段在 ControlPlaneLocalMode 未启用时可显式执行
v1.33.8 DRA 高并发下同一设备被分配给两个 ResourceClaim 的竞态(可能导致第二个 Pod 起不来甚至并行占用);Windows winkernel 双栈 Service 负载均衡器跨族共享导致行为错乱;kubeadm extraArgs 覆盖参数不再整体排序(保证 --service-account-issuer 等顺序敏感 flag 生效);SELinux 告警不再对已完成 Pod 发事件
v1.33.9 仅构建工具链更新(Go 1.24.13)
v1.33.10 VAP additionalProperties: true 的 object schema 导致 kube-controller-manager nil 指针崩溃;kubeadm 不再把 learner 成员加入 etcd 客户端端点;kubeadm reset 卸载 peer 挂载时忽略 EINVAL
v1.33.11 构建切换到 Go 1.25;kube-proxy nftables 模式在 nft 1.1.3 系统上的兼容修复;MultiCIDRServiceAllocator 大规模命名空间升级启动失败修复;依赖升级(logr、spdystream、testify、knftables v0.0.21、OpenTelemetry v1.41 等)
v1.33.12 kubeadm 专项:init 使用默认 admin.conf/super-admin.conf 路径时,生成的 kubeconfig 指向 InitConfiguration.localAPIEndpoint 而非 controlPlaneEndpoint(解决 LB 延迟就绪问题);worker 节点 join 跳过 LocalAPIEndpoint 默认化;kube-apiserver 的 kubelet 客户端改用专用 ClusterRole system:kubelet-api-admin;etcd 健康检查改为 quorum 判定
v1.33.13 endpoint 控制器处理 IPFamilies 为空的 Service(双栈前的遗留对象)时 panic 的修复;构建 Go 1.25.11

9. 交付物形态与校验

每个版本的 Downloads 段落列出四类制品(URL 模式与完整 SHA-512 见 CHANGELOG-1.33.md,本文不复述外链):

  • 源码包kubernetes.tar.gz(含二进制)与 kubernetes-src.tar.gz(纯源码)。
  • Client Binarieskubernetes-client-{darwin,linux,windows}-{amd64,arm64,386,arm,ppc64le,s390x}.tar.gz,用于安装 kubectl/kubeadm/kube-proxy 客户端侧工具。
  • Server Binarieskubernetes-server-linux-{amd64,arm64,ppc64le,s390x}.tar.gz,含 kube-apiserver/kube-controller-manager/kube-scheduler。
  • Node Binarieskubernetes-node-linux-*.tar.gzkubernetes-node-windows-amd64.tar.gz,含 kubelet/kube-proxy。
  • 容器镜像registry.k8s.io 下的 kube-apiserverkube-controller-managerkube-proxykube-schedulerkubectlconformance 六类,均以 manifest list 提供 amd64/arm64/ppc64le/s390x 四架构;需要固定架构时,在镜像名后追加 -$ARCH 后缀(如 kube-apiserver:v1.33.13-arm64)直接拉取。

生产集群建议升级路径:先升级到当季最新补丁(本文对应线为 v1.33.13),以同时获得两个 CVE 修复、nftables GA 相关的累积回归修复与 Go 1.25.11 工具链;若使用 kubeadm,v1.33.12 起的多项 init/join/upgrade 修复(LB 延迟、quorum 健康检查、专用 ClusterRole)对多控制面拓扑尤其值得纳入。

10. 延伸阅读:仓库内的验证路径

升级决策清单(摘自本文各节,供检查使用):清理已移除的特性门与 --cloud-provider/--cloud-config 参数 → 确认 CSI 驱动的 IsLikelyNotMountPoint 用法 → 评估 ReduceDefaultCrashLoopBackOffDecay 与原地扩缩容默认开启对崩溃/resize 行为的影响 → 调度插件是否使用 UpdatePodTolerations → kube-proxy 是否切换 mode: nftables(GA 但非默认)→ 消费 Endpoints/status.resize/旧指标的对象迁移 → 确认 apiserver ≥ v1.33.4 以覆盖两个 CVE。

登录后查看全文
热门项目推荐
相关项目推荐