Kubernetes扁平网络为何难承大规模之重?

5 阅读5分钟

文章指出扁平的 Kubernetes 网络安全模型在大规模应用时会因调试困难、合规压力和变更僵局而失效。为解决此问题,建议引入安全层级和策略试运行模式,以提升网络的可预测性、可审计性和弹性,从而支持云原生平台的发展。

译自:Why flat Kubernetes networks fail at scale

作者:Reza Ramezanpour

重新思考云原生平台的网络安全层级

Kubernetes 网络功能强大。其灵活性使团队能够连接跨命名空间、集群和环境的数百个微服务。但随着平台的发展,同样的灵活性可能会将一个整洁的设置变成一个混乱、脆弱的系统。

对于许多组织来说,网络是首先出现摩擦的地方。工程师们努力调试连接问题。安全团队努力执行全局控制。平台架构师感受到证明合规性的压力。而这些问题大多数都源于一个共同的根本原因:无法扩展的扁平网络安全模型。

扁平网络的局限性

Kubernetes 网络策略 为团队提供了一种控制工作负载之间流量的方法。默认情况下,所有策略都存在于同一级别,没有内置的可管理优先级。

“随着策略的增加,越来越难以预测做出更改时会发生什么。”

这在小型、单团队集群中运行良好。但在大型、多团队环境中,它很快就会变得有风险。

在扁平模型中,安全性是通过例外而不是强制来管理的。保护关键服务通常意味着列出每个允许的连接,并希望没有其他内容意外覆盖它。随着策略的增加,越来越难以预测做出更改时会发生什么。

如果没有明确的优先级规则或验证工具,故障排除就变成了一项侦探工作。团队不断追问:哪个策略首先运行?哪个规则实际生效了?最近的更改是否破坏了安全控制?

变更僵局与合规压力

这些问题直接影响日常运营。

当团队无法自信地回答“如果我应用此策略会发生什么?”时,变更就会感到有风险。策略会被延迟、避免或保守地应用。随着时间的推移,这会导致策略漂移、技术债务和更大的攻击面。

审计员增加了另一层压力。他们希望证明全局安全规则不会被应用程序级别的配置覆盖。扁平网络使得这很难展示,导致审计麻烦,有时还需要在集群外部进行额外的工作。

结果呢?变更僵局。网络成为瓶颈,而不是创新的基础,减缓了交付并给每个人增加了压力。

通过安全层级引入结构

解决方案原则上很简单:引入层级。

安全层级为网络策略提供了明确的顺序和职责分离。策略不再在同一级别上相互竞争,而是根据优先级和目的进行分组和评估。

常见模式包括:

  • 平台层 – 集群服务所需的连接性
  • 安全层 – 强制性控制,例如出站限制或拒绝规则
  • 应用层 – 开发人员管理的服务通信规则
  • 数据或基础设施层 – 保护数据库等高价值工作负载

安全层级的实际实现,展示了不同团队如何管理特定的层级和策略以保持零信任姿态。

安全层级的实际实现,展示了不同团队如何管理特定的层级和策略以保持零信任姿态。

层级使策略意图清晰,并减少意外覆盖。全局规则得到一致执行,同时团队在定义的边界内保持自主权。这种方法也符合 零信任原则,即即使在集群内部,访问也是明确授予并持续评估的。

在不破坏现有功能的情况下测试更改

仅有层级是不够的。团队还需要安全的方法来测试新策略。

在传统网络中,验证通常在流量中断后,也就是强制执行后才进行。在云原生环境中,这种方法不再可接受。

一种日益增长的最佳实践是策略模拟或试运行模式。策略在不强制执行的情况下部署。系统观察流量并报告哪些本应被允许或拒绝。

这使团队能够:

  • 针对实时工作负载安全地验证新规则
  • 根据真实数据优化策略
  • 在平台、安全和应用程序团队之间更早地协作

通过将验证提前到生命周期早期,组织可以减少中断并加速安全变更。

云原生安全的更广泛趋势

摆脱扁平网络反映了云原生社区更广泛的转变。

随着 平台变得更大更复杂,团队正在寻找:

  • 明确的职责分离
  • 跨环境的可预测行为
  • 支持意图驱动配置而非手动协调的工具

层级和试运行测试正在成为标准模式。它们不局限于单一工具,并且在多个环境中都很有用。随着组织采用 AI 工作负载、混合部署和全球规模的集群,它们变得尤为重要。

Kubernetes 网络的未来走向

当集群规模较小且团队紧密耦合时,扁平网络模型运行良好。现在情况已不再如此。

“目标不是减缓创新。目标是使网络行为可预测、可审计和具有弹性。”

为了大规模安全地运行 Kubernetes,平台团队正在通过层级和安全变更机制重新引入结构。目标不是减缓创新。目标是使网络行为可预测、可审计和具有弹性。

随着云原生生态系统的不断发展,这些模式将把网络从风险源转变为现代平台的可靠基础。