Kubernetes v1.34引入新功能,提升灵活性。但工程师需关注其复杂性、风险和运维成本,提前测试并加强监控与管理,避免潜在问题。
译自:Kubernetes v1.34 Introduces Benefits but Also New Blind Spots
作者:Itiel Shwartz
每个Kubernetes版本都会带来好的一面、坏的一面以及只有在生产环境中才会发现的盲点。最新版本(1.34)也不例外。从GPU调度到交换支持,最新功能带来了真正的价值,但也引入了平台工程师不容忽视的新复杂性。
人们很容易就想启用这些功能并继续前进。但首先,让我们剖析它们带来的新风险、可观测性空白和操作开销,以便您在大规模部署之前调整您的操作手册。
动态资源分配
v1.34中最明显的变化之一是动态资源分配(DRA)晋升为GA(通用可用)。这使得Kubernetes集群在调度 GPU、TPU和其他专用设备时具有更大的灵活性。对于需要加速器来扩展的AI和ML工作负载来说,这是一个明显的胜利。
但这种灵活性也增加了复杂性。更多的调度逻辑意味着更多的配置错误可能悄悄进入。应用程序可能请求无法满足的资源,这可能导致调度延迟或回退场景,其行为与预期不同。在财务方面,过度分配GPU每月可能浪费数万美元。
实际的经验是,在将分配场景推广到生产环境之前,在预生产环境中进行彻底测试。工程师还应确保已部署监控以跟踪加速器请求和使用情况。如果没有可见性,DRA的好处很容易变成成本和性能负担。
Linux节点交换支持
另一个重大变化是Linux节点交换支持的GA发布。交换是一个长期以来备受期待的功能,有助于节点在内存压力下保持稳定。当内存耗尽时,节点不再是崩溃Pod,而是可以将部分压力转移到磁盘。
理论上,这听起来像是防止内存不足事件的保护措施,但实际上,交换引入了新的性能问题。过度依赖交换可能掩盖内存行为不佳的工作负载,制造出稳定的假象,同时延迟激增。调整交换行为需要仔细注意,排除内存问题可能很棘手,因为工程师现在必须区分物理内存压力和与交换相关的减速。
交换应被视为安全网,而不是性能策略。采用它的工程师应更新仪表板以跟踪交换进出活动,并将任何持续使用视为在工作负载级别修复资源请求和限制的信号。
Pod级别资源请求和限制
借助v1.34,Kubernetes现在允许在Pod级别定义请求和限制,而不仅仅是在容器级别。对于具有多个容器的工作负载,这使得配额管理更容易,并降低了资源超额承诺的风险。
然而,此功能可能掩盖每个容器的过度使用。如果一个容器垄断资源,当在Pod级别设置限制时,问题可能不明显。水平Pod自动伸缩器(HPAs)也可能行为异常,因为它们的假设与容器级别的指标相关。
在广泛采用Pod级别限制之前,工程师应重新审视其集群中自动伸缩的配置方式。可观测性工具可能也需要更新,以确保它们即使在Pod级别请求生效时也能捕获每个容器的消耗。如果没有这种可见性,就更难追究团队对失控容器的责任或排除性能退化问题。
安全增强功能
该版本还引入了重要的安全改进。短期令牌、外部签名和Pod级别证书增强了合规性态势,并降低了长期凭证风险。这些改变是朝着正确方向迈出的一步,但它们增加了操作开销。
与外部密钥管理或硬件安全模块集成会引入新的依赖关系,这些依赖关系必须始终可靠。如果外部签名系统出现故障,部署可能会失败。频繁的证书轮换需要自动化和警报,以避免因凭证过期而导致的停机。
对于平台团队而言,教训是将这些新功能视为需要全面可观测性和自动化的关键依赖项。令牌和证书生命周期必须像系统的任何其他部分一样受到监控,并在操作手册中清楚记录故障模式。
存储和调度改进
几项较小但重要的更改完善了此版本。卷扩展恢复和VolumeAttributesClass的引入使工作负载能够更动态地控制存储。更智能的作业Pod替换和非阻塞API调用减少了大型集群的瓶颈。
这些功能提供了灵活性和可伸缩性,但它们也扩大了可能的故障模式范围。例如,当工作负载可以即时更改卷属性时,排除I/O减速问题变得更加困难。非阻塞API和流式响应减少了API服务器压力,但增加了对缓存状态的依赖,这可能导致微妙的一致性问题。
在采用这些功能时,扩展监控以跟踪IOPS、存储扩展尝试和缓存行为。收益是真实的,但它们引入的新调试场景也是如此。
这对平台工程师意味着什么
总而言之,v1.34为平台团队提供了更好的工具来管理现代工作负载。但这些增强功能都没有减少工作量。相反,它们只是转移了工作。在部署每个新功能之前,平台工程师应该问自己三个问题:
- 我们必须捕获哪些新指标?
- 引入了哪些新的故障模式?
- 当出现问题时,谁负责修复?
通过将这些问题的答案构建到可观测性堆栈、策略和操作手册中,工程师可以获得v1.34的好处,而不会产生隐藏的负债。
Kubernetes v1.34提醒我们,进步往往是有代价的。该版本带来了使集群更具弹性和适应性的能力,但如果未经准备就采用,每项能力都会引入操作盲点。
将升级视为简单功能开关的平台工程师,将因新的调试挑战、性能权衡和治理空白而措手不及。那些以严谨态度对待v1.34,在预生产环境中进行测试,扩展监控,自动化治理,并更新所有权模型的人,将能够同时实现速度和稳定性。