Kubernetes 1.33 发布深度解析:Pod 原地垂直扩缩容进入 Beta、nftables 模式 GA 与安全修复全景
本文基于 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 vX → Changes 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 请求后不再把状态置为 Proposed;status.resize 字段废弃,改由 PodResizeInProgress / PodResizePending 两个新 Condition 表达状态 |
| 递归只读挂载(RRO,KEP-3857) | GA | recursiveReadOnly 卷挂载成为标准行为 |
JobSuccessPolicy、JobBackoffLimitPerIndex |
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/v1beta1 的 LeaseCandidate API 类型 |
OrderedNamespaceDeletion |
Alpha 且默认开启 | 命名空间删除时先删 Pod 再删其他资源 |
SchedulerPopFromBackoffQ |
Beta、默认开启 | activeQ 为空时从 backoffQ 取 Pod,消除退避队列的惩罚效应 |
同时,1.33 移除了多个已 GA 的特性门:CPUManager、PDBUnhealthyPodEvictionPolicy、AppArmor、AppArmorFields、PersistentVolumeLastPhaseTransitionTime、KubeProxyDrainingTerminatingNodes、JobPodFailurePolicy、DisableCloudProviders、DisableKubeletCloudCredentialProviders,并删除了 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/authentication与apiserver.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/zone、topology.k8s.io/region、kubernetes.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角色的普通用户获得resourceclaims、resourceclaims/status、resourceclaimtemplates的读权限与后两者的写权限。 - 优先级选择列表(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 执行错误会反映在PodResizeInProgressCondition 中;Swap 开启且 memory ResizePolicy 非RestartContainer的容器禁止原地 resize。StopSignal容器生命周期:可配置自定义停止信号。- Pod 级 hugepage 资源:Pod API 支持在
spec级声明 hugepage 资源(Pod-level resources)。 - kubelet 新配置:
KubeletConfiguration.subidsPerPod;MergeDefaultEvictionSettings控制驱逐默认值与配置值的合并优先级;镜像认证跟踪使 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 |
废弃且不可再开启 |
StorageNamespaceIndex、SeparateCacheWatchRPC |
翻转为 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 Binaries:
kubernetes-client-{darwin,linux,windows}-{amd64,arm64,386,arm,ppc64le,s390x}.tar.gz,用于安装 kubectl/kubeadm/kube-proxy 客户端侧工具。 - Server Binaries:
kubernetes-server-linux-{amd64,arm64,ppc64le,s390x}.tar.gz,含 kube-apiserver/kube-controller-manager/kube-scheduler。 - Node Binaries:
kubernetes-node-linux-*.tar.gz与kubernetes-node-windows-amd64.tar.gz,含 kubelet/kube-proxy。 - 容器镜像:
registry.k8s.io下的kube-apiserver、kube-controller-manager、kube-proxy、kube-scheduler、kubectl、conformance六类,均以 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. 延伸阅读:仓库内的验证路径
- 特性门默认值与版本轨迹:pkg/features/kube_features.go,如
InPlacePodVerticalScaling的 1.27 Alpha → 1.33 Beta(on) → 1.35 GA 轨迹可直接在defaultKubernetesFeatureGates表中核对(L1674-L1678),ReduceDefaultCrashLoopBackOffDecay定义于 L967,MultiCIDRServiceAllocator与DisableAllocatorDualWrite的依赖关系见 L2579。 - NodeRestriction 准入行为(含 §7.2 的 ownerReferences 拦截):plugin/pkg/admission/noderestriction/admission.go 及其单测 admission_test.go。
- 完整的逐版本 changelog(含全部 SHA-512 与依赖变更):CHANGELOG/CHANGELOG-1.33.md;如需对照相邻大版本,可查阅同目录下 CHANGELOG-1.32.md 与 CHANGELOG-1.34.md。
升级决策清单(摘自本文各节,供检查使用):清理已移除的特性门与 --cloud-provider/--cloud-config 参数 → 确认 CSI 驱动的 IsLikelyNotMountPoint 用法 → 评估 ReduceDefaultCrashLoopBackOffDecay 与原地扩缩容默认开启对崩溃/resize 行为的影响 → 调度插件是否使用 UpdatePodTolerations → kube-proxy 是否切换 mode: nftables(GA 但非默认)→ 消费 Endpoints/status.resize/旧指标的对象迁移 → 确认 apiserver ≥ v1.33.4 以覆盖两个 CVE。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0624
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00