如何使用Kyverno保护Kubernetes保护用户免受网络攻击插图

随着财富 500 强公司、中小企业以及公共和私营部门的其他大型组织继续进行数字化转型,云服务的使用呈爆炸式增长。除了那些有极端安全需求的人之外,组织现在可以在众多不同的应用程序环境中分布他们的数字基础设施。Google Kubernetes Engine、Microsoft Azure Kubernetes Service 和 AWS Elastic Kubernetes Service 是支持大量经济数字基础设施的云原生环境,甲骨文、IBM 和阿里巴巴等其他参与者也紧随其后。   

这些云平台已经彻底改变了企业管理客户服务的方式,容器技术的新发展几乎每天都在发生。开发、运营和安全团队的 IT 专业人员现在肩负着在容器软件解决方案领域保持领先(或更确切地说,跟上)快速发展的艰巨任务。自从谷歌开发和推出 Kubernetes 以来,Kubernetes 已成为该领域的领跑者之一,所有容器编排用户中有一半将其整合到他们的系统中。

不幸的是,这种大规模采用并不一定会转化为更有效的服务交付——至少对于那些尚未在其 Kubernetes 环境中实施适当治理策略的组织而言。 

管理和保护 Kubernetes 的问题

将 Kubernetes 用于云原生应用程序的主要好处是其令人难以置信的灵活性、可扩展性和自动化。敏捷的创建和部署、持续的开发和集成以及可预测的应用程序性能都可以通过 kubernetes 实现。但是,当缺乏适当的治理实践时,这个容器系统的动态特性也会导致开发、运营和安全问题。 

了解属于 Kubernetes 标题下的每个不同组件并在各个级别正确保护集群只是由于不受监管的容器管理系统的混乱而产生的众多问题中的一小部分。以下是企业 IT 部门在没有必要监督的情况下尝试优化其 Kubernetes 环境时遇到的一些主要问题。 

多个组件

使用 Kubernetes 运行多云应用程序环境的主要痛点之一是理解和利用其多个组成部分。由于容器管理软件由多个组件组成,因此企业 IT 部门需要了解每个不同部分内部、之间和之间的多个最佳实践。从 kube-apiserver 到 cloud-controller-manager 再到多个插件中的任何一个,Kubernetes 集群都是经过精细调整的系统,具有许多故障点。提供无缝的多云体验需要正确集成这些组件中的每一个,而尝试手动执行此操作对于服务交付而言可能是灾难性的。 

性能优化  

仅仅因为 Kubernetes 具有最佳服务交付的潜力并不意味着这将自动适用于每个企业情况。至少不是没有额外的护栏。转向基于云的容器来运行应用程序意味着更难监控每个集群服务器中的资源使用情况。有些可能会耗尽所有可用的 CPU,而另一些可能仅以 20% 的容量运行。在任何一种情况下,数字基础设施都没有得到最佳利用,从而导致资源浪费或客户不满意。 

Buffer 的完全远程社交参与专家遇到了 CPU 节流形式的性能优化问题。他们分享了他们如何在这些令人不安的水域中航行,以将网站速度提高 20 倍以上。虽然 Buffer 是一个相对较小规模的操作,但其分布式组织的性质需要使用适当管理的 Kubernetes 环境。

保护集群

在企业范围的大端,公司的多云应用程序环境可能有数十到数百个不同的集群。这是因为,根据组织的特定需求,企业可能会使用大型共享集群、小型一次性集群或任何其他集群配置。除了对成本、管理和性能产生影响之外,集群大小对安全性也有巨大影响。 

最新版本的 Kubernetes 集群理论上最多支持5000 个节点,但要满足安全目标通常需要使用多个更小的容器。当集群变得太大时,DevSecOps 团队很难确定恶意用户何时渗透到环境中。几年前,当 Cryptominers 渗透 JW Player Kubernetes 集群以利用未开发的 CPU 资源时,就发生了此类违规行为的一个引人注目的实例。 

显然,对于任何希望在当今竞争激烈的市场中保持领先地位的企业公司来说,让 Kubernetes 集群不受管理并不是一种选择。但鉴于大多数多云应用程序环境的规模和规模,公司究竟如何防止 IT 员工犯下代价高昂的错误? 

使用 Kyverno 应用自定义容器管理策略

正如我们所见,云原生计算基金会建议任何部署 Kubernetes 的企业也实施适当的治理结构。这些防护栏不仅可以保护复杂的多云环境免受恶意用户的攻击,还可以保护公司免受服务交付的另一个主要风险:他们自己的 DevOps 团队。如果不这样做,CIO 和高管就会因迭代软件开发和交付中出现的不可避免的错误而冒 CI/CD 的风险。 

为了帮助防止这种内部错误,CNCF最近将Nirmata 的Kyverno 策略引擎添加到他们的隐私沙箱中,正是出于这个原因。这种 Kubernetes 原生治理工具允许公司将所有最佳实践、公司政策甚至行业法规自动化。Nirmata 通过创建 Kyverno 等工具并利用广泛的云战略专业知识来改善企业组织的成果,多年来一直涉足容器软件领域。Kyverno 旨在以自动化、全面的方式将这种云专业知识扩展到用户。

Kyverno:Nirmata 的 Kubernetes 策略引擎

与其他策略引擎不同,Kyverno 专为在 Kubernetes 环境中使用而设计。这意味着 IT 专业人员无需学习复杂的新语言,并且治理系统可以无缝集成到 Kubernetes 环境中。Kyverno 通过三个主要功能实施其策略管理:验证、突变和生成。 

通过策略即代码自动化这些功能意味着根据中央规则检查每个 DevOps 任务,以确保不会发生安全违规。它还允许授权个人修改策略或创建新策略以跟上快速变化的环境。Kyverno 提供的持续合规性对于拥有多样化 Kubernetes 集群的大型企业尤其强大。 

在管理多云应用程序环境方面,肯定有许多不同的策略和方法。然而,之前企业在优化 Kubernetes 集群过程中的失误表明,有一件事是肯定的:治理是成功的关键。