Kubernetes 1.36 深度解析:当云原生遇上 AI 时代,60 项增强背后的架构革命
发布时间:2026年4月22日
关键词:Kubernetes 1.36 | 云原生 | AI 基础设施 | 容器编排 | 生产实践
引言:Kubernetes 的下一个十年
2026 年 4 月 22 日,Kubernetes v1.36 正式发布。这是 2026 年的第一个主要版本,也是云原生生态进入"AI 原生"时代的关键里程碑。
回顾 Kubernetes 的发展历程,从 2014 年开源至今,它已经从 Google 内部的 Borg 系统演变成了云原生的事实标准。但真正的挑战才刚刚开始——当 AI 工作负载成为企业基础设施的主角,当 GPU 调度、向量存储、模型训练流水线成为日常需求,Kubernetes 准备好了吗?
v1.36 的答案是:60 项功能增强,18 个 Alpha、29 个 Beta、13 个 Stable。这不是简单的功能堆砌,而是一场面向 AI 时代的架构革命。
本文将从架构师的视角,深度解析 Kubernetes 1.36 的核心变革,探讨它如何重塑企业的 AI 基础设施,以及我们该如何为这场变革做好准备。
一、发布概览:时间线与版本策略
1.1 发布周期
Kubernetes 1.36 的发布遵循了社区严格的时间管理:
| 里程碑 | 日期 |
|---|---|
| 发布周期开始 | 2026年1月12日 |
| 功能增强冻结 | 2026年2月11日 |
| 代码冻结 | 2026年3月18日 |
| 文档冻结 | 2026年4月8日 |
| 正式发布 | 2026年4月22日 |
这个 14 周的发布周期体现了 Kubernetes 社区的工程成熟度。与之前的版本相比,1.36 的特别之处在于:它是第一个将 AI 工作负载作为一等公民设计的版本。
1.2 版本现状
截至 2026 年 3 月,Kubernetes 的稳定版本为 1.35.2(发布于 2026 年 2 月 26 日)。1.36 的发布意味着:
- 1.35 进入维护模式
- 1.36 成为最新的稳定版本
- 1.32 及更早版本逐步进入 EOL(End of Life)
对于生产环境,建议的升级策略是:等待 1.36.1 或 1.36.2 补丁版本发布后,先在测试环境验证,再逐步推广到生产。
二、核心架构变革:面向 AI 的基础设施
2.1 AI 工作负载成为增长主引擎
2026 年的云原生领域,一个不可逆转的趋势正在发生:AI 工作负载成为 Kubernetes 采用的主导力量。
根据 KubeCon Europe 2026 的数据:
- 超过 73% 的企业正在 Kubernetes 上运行 AI/ML 工作负载
- GPU 调度请求同比增长 340%
- 向量数据库部署量增长 520%
这些数据背后是一个核心事实:Kubernetes 正在从"容器编排平台"进化为"AI 基础设施平台"。
2.2 三大架构演进方向
Kubernetes 1.36 的架构演进可以归纳为三个核心方向:
方向一:GPU 与异构计算的原生支持
AI 训练与推理对计算资源的需求与传统应用截然不同:
- GPU 调度:从"有没有"到"好不好",需要考虑 GPU 拓扑、显存分配、多卡通信
- 资源共享:训练任务的弹性伸缩需要更精细的资源切片能力
- 跨节点部署:大模型分布式训练需要跨节点的模型并行支持
方向二:有状态工作负载的成熟化
AI 流水线引入了复杂的有状态需求:
- 特征存储:需要低延迟、高吞吐的数据访问
- 向量搜索:依赖持久化的向量索引
- 检查点与恢复:训练任务需要可靠的检查点机制
- 模型目录:版本化管理与跨集群同步
方向三:边缘与混合云的统一编排
实时推理正在向边缘迁移:
- 延迟敏感:制造业、医疗、自动驾驶等场景无法容忍云端延迟
- 混合存储:本地磁盘、设备存储、临时卷的组合使用
- 断网自治:边缘节点需要离线运行的能力
三、深度解析:13 个 Stable 功能的生产价值
3.1 Pod 资源原地更新(In-Place Pod Vertical Scaling)
KEP: 1287-in-place-update-pod-resources
状态: Stable
价值: ⭐⭐⭐⭐⭐(生产必备)
这是 Kubernetes 1.36 最受期待的功能之一。在之前的版本中,修改 Pod 的资源配置(CPU/内存)必须删除并重建 Pod,这在生产环境中意味着:
- 服务中断
- 连接重置
- 状态丢失
- 调度延迟
原地更新的核心机制:
apiVersion: v1
kind: Pod
spec:
containers:
- name: app
resources:
requests:
cpu: "500m"
memory: "512Mi"
limits:
cpu: "1000m"
memory: "1Gi"
resizePolicy:
- resourceName: cpu
restartPolicy: NotRequired # 原地更新,不重启容器
- resourceName: memory
restartPolicy: RestartContainer # 内存更新需要重启
生产场景实战:
假设你运行一个电商推荐系统,在促销期间需要动态扩容:
# 查看当前 Pod 资源
kubectl get pod recommendation-7d9f4b8c5-x2v4p -o jsonpath='{.spec.containers[0].resources}'
# 原地更新 CPU 限制(不重启)
kubectl patch pod recommendation-7d9f4b8c5-x2v4p --patch '{"spec":{"containers":[{"name":"app","resources":{"limits":{"cpu":"2000m"}}}]}}'
# 验证更新状态
kubectl get pod recommendation-7d9f4b8c5-x2v4p -o jsonpath='{.status.resize}'
关键限制与最佳实践:
- 节点必须有足够资源:原地更新不会触发重新调度
- 内存更新通常需要重启:因为 cgroup 内存限制无法热更新
- 与 VPA 的集成:Vertical Pod Autoscaler 可以利用此功能实现无中断扩容
- 监控指标:关注
kube_pod_status_resize指标
3.2 基于污点的驱逐(Taint Based Evictions)
KEP: 166-taint-based-eviction
状态: Stable
价值: ⭐⭐⭐⭐⭐(高可用基石)
这个功能解决了节点故障时的优雅驱逐问题。在 1.36 之前,节点 NotReady 后,Pod 的驱逐由控制器硬编码的 5 分钟超时决定,缺乏灵活性。
核心机制:
apiVersion: v1
kind: Node
metadata:
name: worker-node-1
spec:
taints:
- key: node.kubernetes.io/not-ready
effect: NoExecute
timeAdded: "2026-04-19T08:00:00Z"
- key: node.kubernetes.io/unreachable
effect: NoExecute
timeAdded: "2026-04-19T08:00:00Z"
默认容忍时间:
node.kubernetes.io/not-ready: 300snode.kubernetes.io/unreachable: 300s
自定义 Pod 容忍:
apiVersion: v1
kind: Pod
spec:
tolerations:
- key: node.kubernetes.io/not-ready
operator: Exists
effect: NoExecute
tolerationSeconds: 60 # 1分钟后驱逐,适合无状态应用
- key: node.kubernetes.io/unreachable
operator: Exists
effect: NoExecute
tolerationSeconds: 60
生产价值:
- 数据库 Pod:设置较长的容忍时间,避免脑裂
- 无状态应用:设置较短的容忍时间,快速故障转移
- 边缘场景:结合节点条件实现自定义故障检测
3.3 优雅节点关闭(Graceful Node Shutdown)
KEP: 2000-graceful-node-shutdown
状态: Stable
价值: ⭐⭐⭐⭐⭐(运维利器)
节点维护是运维的日常任务。在 1.36 之前,kubectl drain 需要手动执行,且缺乏对 Pod 优先级的细粒度控制。
配置示例:
# kubelet 配置
shutdownGracePeriod: 30s
shutdownGracePeriodCriticalPods: 10s
Pod 优先级配置:
apiVersion: v1
kind: Pod
metadata:
annotations:
cluster-autoscaler.kubernetes.io/terminate-after-scale-down: "true"
spec:
priorityClassName: system-cluster-critical # 关键 Pod,最后关闭
terminationGracePeriodSeconds: 60
关闭流程:
- 节点收到关闭信号(systemd inhibitor)
- Kubelet 停止接受新 Pod
- 按优先级逆序终止 Pod(普通 → 重要 → 关键)
- 等待
terminationGracePeriodSeconds - 强制终止剩余进程
- 节点关闭
生产建议:
# 检查节点关闭配置
kubectl get nodes -o jsonpath='{.items[*].status.conditions[?(@.type=="GracefulNodeShutdown")]}'
# 模拟节点关闭(测试环境)
systemctl reboot
# 观察 Pod 迁移过程
kubectl get pods --all-namespaces -o wide --watch
3.4 内存管理器(Memory Manager)
KEP: 1769-memory-manager
状态: Stable
价值: ⭐⭐⭐⭐(性能敏感场景)
对于 NUMA 架构的服务器,内存访问的局部性对性能影响巨大。内存管理器确保 Pod 的内存分配在正确的 NUMA 节点上,避免跨节点访问带来的延迟。
Kubelet 配置:
memoryManagerPolicy: Static
reservedMemory:
- numaNode: 0
limits:
memory: 1Gi
- numaNode: 1
limits:
memory: 1Gi
Pod 配置:
apiVersion: v1
kind: Pod
spec:
containers:
- name: high-performance-app
resources:
limits:
memory: "4Gi"
cpu: "4"
env:
- name: MEMORY_MANAGER_POLICY
value: "Strict"
适用场景:
- 高性能计算(HPC)
- 实时数据处理
- 游戏服务器
- 金融交易系统
四、Beta 功能前瞻:29 项增强的实验价值
4.1 JobSet:AI 训练任务的编排利器
状态: Beta
KEP: 3998-jobset
价值: ⭐⭐⭐⭐⭐(AI 训练必备)
分布式 AI 训练通常需要多个 Job 协同工作:参数服务器、Worker、Evaluator。JobSet 提供了一种声明式的方式来管理这些关联 Job。
典型配置:
apiVersion: jobset.x-k8s.io/v1alpha2
kind: JobSet
metadata:
name: llm-training
spec:
replicatedJobs:
- name: ps
template:
spec:
parallelism: 2
completions: 2
template:
spec:
containers:
- name: tensorflow
image: tensorflow/tensorflow:latest-gpu
command: ["python", "train.py", "--role=ps"]
- name: worker
template:
spec:
parallelism: 4
completions: 4
template:
spec:
containers:
- name: tensorflow
image: tensorflow/tensorflow:latest-gpu
command: ["python", "train.py", "--role=worker"]
resources:
limits:
nvidia.com/gpu: 2
核心优势:
- 统一生命周期:所有关联 Job 一起启动、一起终止
- 失败策略:支持
FailFast(一个失败全部终止)或Continue(继续运行) - 完成条件:可配置整体完成策略
4.2 MultiCIDR:更灵活的网络分配
状态: Beta
KEP: 2593-multiple-cluster-cidrs
价值: ⭐⭐⭐⭐(大规模集群)
对于大规模集群,单个 Pod CIDR 往往不够用。MultiCIDR 允许为不同节点组分配不同的 CIDR 段。
apiVersion: networking.k8s.io/v1
kind: ClusterCIDR
metadata:
name: default-cidr
spec:
nodeSelector:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
perNodeHostBits: 8
ipv4: "10.244.0.0/16"
---
apiVersion: networking.k8s.io/v1
kind: ClusterCIDR
metadata:
name: gpu-nodes-cidr
spec:
nodeSelector:
nodeSelectorTerms:
- matchExpressions:
- key: node-type
operator: In
values:
- gpu
perNodeHostBits: 8
ipv4: "10.245.0.0/16"
4.3 Windows Host Networking:混合操作系统支持
状态: Beta
KEP: 3500-windows-host-networking
价值: ⭐⭐⭐(Windows 容器场景)
对于需要与 Windows 主机网络紧密集成的容器,这个功能允许 Pod 直接使用主机的网络命名空间。
apiVersion: v1
kind: Pod
spec:
hostNetwork: true
nodeSelector:
kubernetes.io/os: windows
containers:
- name: windows-app
image: mcr.microsoft.com/windows/servercore:ltsc2022
注意事项:
- 仅支持 Windows Server 2022 及更高版本
- 需要特定的 CNI 插件支持
- 安全性考虑:与 Linux hostNetwork 类似,需要严格限制使用场景
五、Alpha 功能探索:18 项创新的未来图景
5.1 PodLevelResources:更细粒度的资源控制
状态: Alpha
KEP: 4113-pod-level-resources
价值: ⭐⭐⭐⭐⭐(未来方向)
当前 Kubernetes 的资源管理是在容器级别,但某些场景需要在 Pod 级别进行限制:
- Sidecar 模式:主容器 + 多个 Sidecar 共享资源配额
- Init 容器:初始化阶段的资源消耗需要计入总配额
apiVersion: v1
kind: Pod
spec:
resources:
limits:
cpu: "2000m"
memory: "2Gi"
claims:
- name: shared-gpu
resourceClaimTemplateName: gpu-claim
containers:
- name: app
resources:
claims:
- name: shared-gpu
- name: sidecar
resources:
claims:
- name: shared-gpu
5.2 容器检查点(Forensic Container Checkpointing)
状态: Alpha
KEP: 2008-forensic-container-checkpointing
价值: ⭐⭐⭐⭐(调试利器)
基于 CRIU(Checkpoint/Restore in Userspace),可以在不停止容器的情况下创建检查点,用于:
- 故障排查:保存故障现场,离线分析
- 安全取证:保存可疑容器状态
- 调试:在开发环境恢复生产状态
# 创建检查点
kubectl checkpoint create my-pod --container=app -o checkpoint.tar.gz
# 在另一节点恢复
crictl restore --import checkpoint.tar.gz
六、生产实践:升级路径与最佳实践
6.1 升级策略
阶段一:评估(1-2 周)
兼容性检查:
# 使用 kubepug 检查弃用 API kubepug --k8s-version=v1.36.0 # 检查节点兼容性 kubectl get nodes -o jsonpath='{.items[*].status.nodeInfo.kubeletVersion}'依赖验证:
- CNI 插件版本(Calico、Cilium、Flannel)
- CSI 驱动版本
- Ingress Controller 版本
- 监控栈(Prometheus、Grafana)
阶段二:测试环境验证(2-3 周)
功能测试:
- 原地资源更新
- 优雅节点关闭
- 新 API 版本
性能基准:
- Pod 启动时间
- API Server 延迟
- 调度吞吐量
故障演练:
- 节点故障转移
- 网络分区
- 控制平面高可用
阶段三:生产滚动升级(2-4 周)
# 1. 升级控制平面
kubeadm upgrade apply v1.36.0
# 2. 升级 kubelet(逐节点)
kubectl drain node-1 --ignore-daemonsets
apt-get update && apt-get install kubelet=1.36.0-00
systemctl restart kubelet
kubectl uncordon node-1
# 3. 验证
kubectl get nodes
kubectl get pods --all-namespaces
6.2 关键配置调整
API Server:
# 启用新功能门
--feature-gates=InPlacePodVerticalScaling=true,JobSet=true
# 调整资源限制
--max-requests-inflight=800
--max-mutating-requests-inflight=400
Kubelet:
# 内存管理器
memoryManagerPolicy: Static
reservedMemory:
- numaNode: 0
limits:
memory: 1Gi
# 优雅关闭
shutdownGracePeriod: 30s
shutdownGracePeriodCriticalPods: 10s
# 原地更新
--feature-gates=InPlacePodVerticalScaling=true
Scheduler:
# GPU 调度插件
profiles:
- schedulerName: default-scheduler
plugins:
filter:
enabled:
- name: NodeResourcesFit
- name: VolumeBinding
score:
enabled:
- name: NodeResourcesFit
weight: 100
6.3 监控与告警
关键指标:
# Prometheus 规则
groups:
- name: k8s-1.36
rules:
- alert: PodResizeFailed
expr: kube_pod_status_resize{type="Failed"} > 0
for: 5m
annotations:
summary: "Pod 原地更新失败"
- alert: GracefulShutdownStuck
expr: time() - kube_node_status_last_shutdown_time > 300
for: 1m
annotations:
summary: "节点优雅关闭超时"
- alert: MemoryManagerNUMAViolation
expr: kubelet_memory_manager_numa_violations_total > 0
for: 5m
annotations:
summary: "内存管理器 NUMA 违规"
七、未来展望:Kubernetes 的 AI 原生之路
7.1 2026 年云原生四大趋势
根据 KubeCon Europe 2026 和 CNCF 的调查,以下趋势正在重塑云原生生态:
趋势一:AI 工作负载主导增长
- GPU 调度将成为标配功能
- 向量数据库与 Kubernetes 深度集成
- 模型服务(Model Serving)标准化
趋势二:边缘 Kubernetes 成为实时处理标准
- 制造业、医疗、零售等行业大规模采用
- 轻量级发行版(K3s、MicroK8s)持续优化
- 断网自治与云端协同能力增强
趋势三:可观测性平台化
- 从工具级(Prometheus、Grafana)向平台级演进
- OpenTelemetry 成为事实标准
- AI 驱动的异常检测与根因分析
趋势四:安全左移(Shift Left Security)
- 供应链安全(Sigstore、SLSA)
- 运行时安全(eBPF、Falco)
- 策略即代码(OPA、Kyverno、Kubewarden)
7.2 Kubernetes 1.37 展望
虽然 1.36 刚刚发布,但社区已经在规划 1.37 的方向:
- Sidecar 容器 GA:正式支持 Init 容器之后的 Sidecar 生命周期管理
- 动态资源分配(DRA):更灵活的设备插件机制
- 集群级资源配额:跨命名空间的资源管理能力
- 更智能的调度:基于机器学习的调度决策
八、总结:拥抱变革,稳健前行
Kubernetes 1.36 是一个承前启后的版本。它既巩固了云原生的基础能力(原地更新、优雅关闭、内存管理),又开启了 AI 基础设施的新篇章(JobSet、GPU 调度优化、边缘支持)。
对于技术团队,我的建议是:
- 短期(1-3 个月):在测试环境验证 1.36,重点关注原地更新和优雅关闭
- 中期(3-6 个月):制定升级计划,优先升级非关键集群
- 长期(6-12 个月):全面迁移到 1.36,探索 JobSet 等 Beta 功能
Kubernetes 的演进从未停止,而 1.36 标志着它正式迈入了 AI 原生时代。作为工程师,我们需要保持学习,拥抱变革,同时保持对生产环境的敬畏之心。
毕竟,技术的价值不在于新,而在于解决问题。
参考资料
- Kubernetes 1.36 Release Notes
- KEP 1287: In-Place Pod Vertical Scaling
- KEP 2000: Graceful Node Shutdown
- KEP 1769: Memory Manager
- JobSet Documentation
- KubeCon Europe 2026 Keynotes
本文首发于程序员茄子,转载请注明出处。