文章
K8s 1.33 Octarine 详解
Kubernetes 1.33 Octarine 详解
概述
v1.33「Octarine」于 2025-04-23 发布,代号取自《碟形世界》的「第八种魔法色」,寓意开源魔法。含 64 项增强(GA 18 / Beta 20 / Alpha 24),是近年增强最多的版本之一。三大里程碑 GA:Sidecar 容器、nftables kube-proxy 后端、拓扑感知路由;安全里程碑:用户命名空间默认开启 Beta;同时 In-place Pod 资源调整进入 Beta。
发布基本信息
| 项目 | 内容 |
|---|
| 发布日期 | 2025-04-23 |
| 代号 | Octarine(魔法色) |
| 开发周期 | 15 周(2025-01-13 ~ 2025-04-23) |
| 增强总数 | 64(GA 18 / Beta 20 / Alpha 24) |
| 贡献 | 121 家公司、570 名个人 |
主要新特性解读
🟢 GA 特性
1. Sidecar 容器 GA(KEP-753)⭐
- 解读:自 v1.28 Alpha 起,历经 5 个版本终于 GA。边车容器作为
restartPolicy: Always 的特殊 init 容器实现,确保在应用容器之前启动、整个 Pod 生命周期运行、主容器退出后自动终止;支持探针与 OOM 分数调整。
- 价值:彻底取代 hack 式 sidecar 注入,网络代理/日志/监控 sidecar 生命周期管理更可靠。
- 相关概念:init container、Pod 生命周期、startup/readiness/liveness probe、Istio/Linkerd sidecar。
2. nftables kube-proxy 后端 GA(KEP-3866)⭐
- 解读:iptables 仍为 Linux 默认(兼容性),但 nftables 已 GA 可用,性能与可扩展性显著提升。
- 相关概念:iptables vs nftables、conntrack、Service 转发、
--proxy-mode。
3. 拓扑感知路由 trafficDistribution: PreferClose GA(KEP-4444/2433)⭐
- 解读:EndpointSlice 拓扑感知提示使 kube-proxy 优先路由同区域端点,降低延迟与跨区域成本。
- 相关概念:EndpointSlice topology hints、
externalTrafficPolicy、多区域集群。
4. 多 Service CIDR GA(KEP-1880)
ServiceCIDR/IPAddress API 对象动态管理 Service IP 范围。
5. Job 增强多项 GA
- 按索引退避限制(KEP-3850)、Job 成功策略(KEP-3998)毕业。
6. 其他 GA:matchLabelKeys/mismatchLabelKeys、卷填充器(KEP-1495)、PV 回收策略保证、CRD 验证棘轮、RRO 挂载、kubectl --subresource、Portworx CSI 迁移等。
🟡 Beta 特性
1. In-place Pod 资源调整 Beta(KEP-1287)⭐
- 解读:动态更新现有 Pod 的 CPU/内存而无需重启,支持无停机垂直扩展、低流量缩减、启动多分配后缩减。
- 演进:v1.35 GA。
- 相关概念:VerticalPodAutoscaler、
resizePolicy、resources.limits 热更新。
2. 用户命名空间默认开启 Beta(KEP-127)⭐
- 解读:2016 年开启的最古老 KEP 之一!v1.25 Alpha → v1.30 Beta(默认关)→ v1.33 默认开启 Beta。需手动设
pod.spec.hostUsers 启用。
- 价值:容器内 root 映射为主机非特权用户,缓解容器逃逸漏洞,安全隔离里程碑。
- 相关概念:user namespace、
hostUsers、容器逃逸、Linux UID 映射。
3. DRA 结构化参数 v1beta2 Beta & 网络接口 DRA Beta。
4. 镜像卷 Beta(KEP-4639)
- OCI 镜像作为 Pod 卷,独立打包卷数据并在容器间共享。
5. ClusterTrustBundles Beta(KEP-3257)
- 集群范围资源保存 X.509 信任锚,方便证书签名者发布根证书。
6. 细粒度 SupplementalGroups Beta(KEP-3619)
supplementalGroupsPolicy 支持 Merge/Strict,解决隐式组成员身份安全问题。
7. 其他 Beta:Windows DSR、CPUManager 跨 NUMA、Pod procMount、PreStop 零秒休眠、validation-gen。
🔴 Alpha 特性
1. .kuberc kubectl 用户偏好(KEP-3104)
- 解读:新配置文件含 kubectl 别名与覆盖(如默认 server-side apply),与 kubeconfig 凭据分离。
KUBECTL_KUBERC=true,默认路径 ~/.kube/kuberc。
- 相关概念:kubeconfig、kubectl 插件、shell alias 对比。
2. DRA 多项 Alpha
- 设备污点与容忍(KEP-5055)、优先级列表 firstAvailable(KEP-4816)、AdminAccess(KEP-5018)、可分区设备(KEP-4815)。
- 相关概念:Node taints/tolerations 类比、设备驱逐、GPU 分区。
3. HPA 可配置容差 Alpha(KEP-4951)
4. PSI 指标 Alpha(KEP-4205)
- Linux cgroupv2 提供压力停滞信息,检测资源短缺。
- 相关概念:PSI(Pressure Stall Information)、
memory.pressure、资源瓶颈诊断。
5. 自定义容器停止信号 Alpha & 节点拓扑标签 downward API Alpha。
弃用与移除
| 类型 | 项目 | 说明 |
|---|
| 弃用 | Endpoints API(KEP-4974) | EndpointSlices 自 v1.21 稳定替代,Endpoints 弃用,需迁移 |
| 移除 | status.nodeInfo.kubeProxyVersion | v1.31 弃用,v1.33 完全移除 |
| 移除 | in-tree gitRepo 卷驱动 | 自 v1.11 弃用,有安全风险(root RCE);kubelet feature-gate 可 3 版本内重启用 |
| 移除 | Windows Pod host network | KEP 撤回,HostProcess 容器不受影响 |
重大变更与升级注意
⚠️ Endpoints API 弃用
- 直接用 Endpoints API 的工作负载/脚本迁 EndpointSlices。
⚠️ gitRepo 卷移除
- 用
gitRepo 的工作负载迁 init 容器或 git-sync。kubelet GitRepoVolumeDriver feature gate 可临时重启用。
⚠️ Sidecar 行为变化
- Sidecar 作为
restartPolicy: Always init 容器,行为可能与旧版本不同。
⚠️ iptables 仍默认
运维实践要点
- Sidecar 容器全面采用:GA 后将日志/监控/网络 sidecar 改为原生 sidecar 容器,简化生命周期管理。
- 用户命名空间试点 hardened 工作负载:对安全敏感服务设
hostUsers: false,验证容器逃逸缓解。
- In-place Pod 资源调整试点:结合 VPA 评估无停机垂直扩展,注意容器运行时与节点支持。
- Endpoints → EndpointSlices 迁移:扫描自定义控制器/脚本,统一改 EndpointSlice。
- nftables 迁移评估:大型集群评估性能收益,制定迁移计划。
- 拓扑感知路由:多区域集群启用
trafficDistribution: PreferClose 降本。
常见问题 / 坑点
| 问题 | 原因 | 解决方案 |
|---|
| 自定义控制器 list Endpoints 失效 | Endpoints 弃用 | 改 EndpointSlices |
gitRepo Pod 失败 | 驱动移除 | 用 init 容器 + git-sync |
| Sidecar 行为异常 | GA 后生命周期变化 | 检查 restartPolicy: Always init 容器顺序 |
| 用户命名空间 Pod 启动失败 | 节点/运行时不支持 | 确认容器运行时支持 user namespace |
关联知识
参考资源
状态: 📖 已掌握