K8s 1.28 新特性解读:容器运行时接口(CRI)v1alpha2 与 PodSecurity 标准升级
Kubernetes 1.28 新特性解读:CRI v1alpha2 与 PodSecurity 标准升级
一、容器运行时接口(CRI)v1alpha2
CRI 是 Kubernetes 与容器运行时(如 containerd、CRI-O)交互的核心接口。v1alpha2 版本带来以下关键改进:
-
资源隔离增强
新增ContainerResources字段,支持更细粒度的资源配置:message ContainerResources { LinuxContainerResources linux = 1; // CPU/内存限制 WindowsContainerResources windows = 2; // Windows 专用配置 }允许为不同操作系统定制资源策略,解决混合环境调度问题。
-
设备管理升级
引入DeviceRequests协议,统一 GPU/FPGA 等异构设备管理:type DeviceRequest struct { Count int32 // 设备数量 Type string // 设备类型(如 "nvidia.com/gpu") }简化设备插件开发,支持动态设备分配。
-
运行时类(RuntimeClass)优化
通过RuntimeHandler字段实现多运行时无缝切换:apiVersion: node.k8s.io/v1 kind: RuntimeClass metadata: name: gvisor handler: runsc # 指定 containerd 使用 gVisor无需修改 Pod 配置即可切换沙箱运行时。
-
性能监控标准化
新增ContainerStats数据结构,统一指标采集: $$ \text{CPU 使用率} = \frac{\sum \Delta \text{CPU 周期}}{\Delta t \times \text{CPU 核心数}} \times 100% $$ 提供跨运行时的监控一致性。
二、PodSecurity 标准升级
PodSecurity 替代已弃用的 PodSecurityPolicy,提供更简化的安全准入控制:
-
强制执行模式(Enforce)默认启用
在 1.28 中,PodSecurity准入控制器默认生效,策略层级:级别 限制内容 典型场景 Privileged 无限制 系统组件 Baseline 禁止特权容器 普通应用 Restricted 禁止特权+只读根文件系统 高敏感应用 -
豁免机制(Exemptions)强化
支持按命名空间/用户/RuntimeClass 豁免:apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicy spec: exemptions: namespaces: ["kube-system"] # 豁免系统命名空间 -
审计日志增强
违反策略事件记录详细上下文:{ "kind": "Event", "message": "Pod 'web-app' violated: allowPrivilegeEscalation=false", "annotations": { "violated_policy": "baseline" } } -
与 PSA(Pod Security Admission)集成
通过标签动态调整安全级别:apiVersion: v1 kind: Namespace metadata: labels: pod-security.kubernetes.io/enforce: baseline
三、升级影响与最佳实践
-
CRI 迁移建议
- 测试阶段:在非生产集群启用
featureGate: CRIV2Alpha=true - 兼容性:v1alpha2 与 v1alpha1 并行运行 2 个版本
kubelet --container-runtime-endpoint=unix:///run/cri.sock --cri-version=v1alpha2 - 测试阶段:在非生产集群启用
-
PodSecurity 实施路径
graph LR A[评估现有工作负载] --> B[标记命名空间基线级别] B --> C[逐步应用Restricted策略] C --> D[利用审计模式监控异常] -
关键注意事项
- CRI v1alpha2:需容器运行时 ≥ containerd 1.7 / CRI-O 1.26
- PodSecurity:避免同时启用旧版 PSP 控制器
- 策略冲突时遵循规则:
$$ \text{最终决策} = \min(\text{集群策略}, \text{命名空间策略}) $$
升级提示:建议通过
kubectl convert工具自动转换旧版 PSP 策略,并利用kube-score进行预检扫描。
更多推荐
所有评论(0)