综合 Kubernetes 1.35 升级清单:Pod 原地改资源转 GA,ipvs 与 Ingress NGINX 退场

2026-09-14 21:01:57

Kubernetes 1.35 升级清单:Pod 原地改资源转 GA,ipvs 与 Ingress NGINX 退场

v1.35(代号 Timbernetes)2025-12-17 发布,共 60 项增强:17 项 stable、19 项 beta、22 项 alpha。最新补丁 1.35.8(2026-08-11),1.35.9 目标 2026-09-15。

  • 发布说明:https://kubernetes.io/blog/2025/12/17/kubernetes-v1-35-release/
  • 版本页:https://kubernetes.io/releases/1.35/

原地改 Pod 资源(KEP #1287,GA)

在运行中的 Pod 上直接改容器的 CPU/内存 requests/limits,不重启 Pod。两个入口:

# 单个 Pod
kubectl edit pod my-pod -n default

# Deployment / StatefulSet 管理的 Pod:改 template
kubectl edit deployment my-app -n default
# 修改 spec.template.spec.containers[].resources 后保存

注意两点:一是只有 controller 不覆盖时 Pod 上的改动才留得住,生产环境应该直接改 Deployment/StatefulSet 的 template,否则下一轮 reconcile 会把 Pod spec 拉回去;二是原地调整不重建容器,Pod UID、IP、卷挂载都保持不变,因此调整前的资源水位要按现有负载评估。

PreferSameNode 流量分发(GA)

Service 的 trafficDistribution 字段可设为 PreferSameNode(原 PreferLocal/节点级拓扑)。kube-proxy 或 Cilium 等数据面会优先选择同节点 endpoint,只有必要时才跨节点转发。

apiVersion: v1
kind: Service
metadata:
  name: my-svc
spec:
  trafficDistribution: PreferSameNode
  selector:
    app: my-app
  ports:
    - port: 80
      targetPort: 8080

这是偏好而非硬约束:本节点没有可用 endpoint 时仍会跨节点,行为上不等价于拓扑亲和。

同批 GA 的其他项

  • Job API 的 managed-by 机制。
  • Fine-grained SupplementalGroups 控制:per-container 严格模式,不再整个 Pod 继承。
  • kubelet drop-in 配置目录。
  • SPDY → WebSockets 迁移。
  • 另有 15 项升到 stable,包括 CPUManager 的 reservedSystemCPUs、Pod Generation、kubelet image GC 的最大年龄、TopologyManager 的 MaxAllowableNUMANodes

Beta

KYAML(KEP #5295):Kubernetes 优化的 YAML 子集,更易读,对 kubectl 等工具更友好。

其他 beta 项:StatefulSet 的 maxUnavailable;HPA 可配置 tolerance;Pod user namespaces;VolumeSource 支持 OCI artifact/image;存储版本迁移(storage version migration);CSI driver 通过 secrets 字段 opt-in service account token;Deployment 终止副本计数;kubelet 缓存镜像凭证校验;更细粒度的容器重启规则;Pod certificates for workload identity。

Alpha

Gang scheduling(KEP #4671):引入 Workload API 和 PodGroup,实现 all-or-nothing 调度——只有集群能同时容纳整组 Pod 时才真正调度,否则整组等待,面向 AI 批量任务。

同批 alpha 还包括:Job 被挂起时可改容器资源(KEP #5440,避免 OOM 后删 Job 重建导致历史丢失);Constrained impersonation;Flagz/Statusz 组件自省端点;CCM 基于 informer 的路由控制器协调。

弃用与移除

  • kube-proxy 的 ipvs 模式弃用,启动会打警告。Linux 节点应转向 nftables,这是当前推荐的替代模式。
  • Ingress NGINX 退役,推荐迁到 Gateway API。
  • cgroup v1 支持结束,统一到 cgroup v2。

升级前可验证清单

# 1) 节点 cgroup 版本:期望 cgroup2fs
stat -fc %T /sys/fs/cgroup

# 2) kube-proxy 当前模式:ipvs 会触发弃用警告
kubectl -n kube-system get cm kube-proxy -o yaml | grep -i mode
# 切换方式(nftables 为推荐替代)
kube-proxy --proxy-mode=nftables

# 3) Ingress NGINX 资产清点,规划迁到 Gateway API
kubectl get ingressclass
kubectl get ingress -A
kubectl get gatewayclass

顺序上建议先清 ipvs 与 cgroup v1(直接影响节点能否正常启动 kubelet/kube-proxy),再盘 Ingress NGINX 的迁移面,最后才动 Pod 原地改资源这类收益项。

复制全文 生成海报 Kubernetes 运维 kube-proxy Gateway API 容器

推荐文章

程序员茄子在线接单