无服务器容器强化安全网络要求


当你和库本内特斯比赛的时候,作为一个开发人员,首要的任务是找出一个微服务架构和一个开发平台管道来构建吊舱。然而,如果你是库本内特斯集群I&O专业,也称为网站可靠性工程师(SRE),那么你的第一个业务订单是弄清楚库本内特斯本身,因为集群成为了pod封装的应用程序的计算机。SRE集群处理的事情之一是集群基础设施:服务器、虚拟机或IaaS,即使对于像GKE这样的受管库本内特产品也是如此。这些服务器被称为库本内特节点。

追求效率

当你进入高阶库本内特时,你会追逐一些东西。

首先,多用途集群可以更有效地利用底层服务器资源和您的SRE时间。所谓多用途集群,我指的是在同一个集群上运行大量的应用程序、项目、团队/租户和DevOps管道阶段(开发/测试、构建/烘焙、暂存、生产)。

当你刚接触库本内特时,这样的维度通常是在单独的集群、每个项目、每个团队等上创建的。随着您的K8s之旅逐渐成熟,您可以忽略由此导致的底层服务器资源容量的浪费。在您的多集群中,根据您的可靠性限制,将许多集群整合到尽可能少的集群中,还可以节省您的时间,减少您在以下方面的工作:修补、集群升级、秘密和工件分发、合规性、监控等等。

其次,还有对缩放效率的不断追求。Kubernetes和主动监控代理有助于自动扩展单个微服务,但向外扩展需要假设您的集群节点有容量。尤其是如果您在IaaS上运行集群,在备用虚拟机实例中维护和支付额外容量实际上是浪费。您可能需要一些缓冲,因为启动虚拟机的速度比容器和容器慢得多。动态地调整集群的规模是一个相当大的难题,尤其是当它变得更加多用途的时候。

真正的CaaS:无服务器容器

在适当调整集群规模方面,虽然云提供商乐意接受您的资金购买额外的虚拟机来支持您的备用节点容量,但他们确实有更好的解决方案。在2017年发明announced Fargate抽象出集群下的服务器。最终,除了ECS,它还应该支持EKS。与此同时,蓝色Container Instances(ACI)是一个真正的Kubernetes-pods即服务产品,让您不必担心运行它的服务器组。

高阶库本内特·SRE

在的时候Networking Field Day 17NFD17 video recording),我在“左移”中介绍了您在处理DevOps和多用途集群时的网络和安全考虑。事实证明,在同一天,软件工程日报发布了他们的Serverless Containers podcast。在听它的时候,你会意识到这种无服务器的容器栈可能是多用途库本内特集群的缩影。

云提供商在无服务器容器堆栈的关注点分离方面所提供的,伟大的集群SREs也将致力于向他们支持的开发人员提供。

当您在Kubernetes操作中达到这种成熟程度时,您会想到很多您可能最初没有考虑到的事情。这发生在许多领域,但肯定是在网络和安全领域。因此我说的是“左移”,这样你就可以准备好迎接某些挑战,否则如果你只是让库本内特斯开始运转,你就不会看到这些挑战(great book用那个名字)。

在开放网络和安全领域,没有一个项目能达到的可扩展性和成熟度OpenContrail。你可能听说过不朽moment,至少在社区中,当AT&T选择它来运行他们的100多个云时,一些巨大的规模。防暴游戏也有blogged关于它如何支持他们的DevOps和传奇联盟的容器运行时环境,传奇联盟是最大的在线游戏之一。

云级网络和安全性

对于集群多租户,不用说,拥有像OpenContrail这样的多租户网络和安全性是很有用的。您可以在更简单的SDN系统中将隔离边界和访问策略结合在一起(事实上,今天,由于它们的简单性而变得更加流行),但是实际上在您的SDN系统中拥有多租户域和项目隔离要优雅得多,可伸缩性也更好。它是一个包含虚拟网络设计、IP地址管理、网络策略和状态安全策略的更清晰的层次结构。

我在NFD17中谈到的另一个主题是使网络和安全性对集群SRE更不可见,当然对开发人员更不可见,但是为安全性和网络可靠性工程师提供大量的控制和可见性(NREs)或NetOps/SecOps专家。OpenContrail在两个关键方面提供了帮助。

首先,虚拟网络覆盖是一流的概念和对象。这对您的DevOps管道非常有用,因为您可以为您的登台和生产部署创建完全相同的网络和安全环境(here'sRiot是如何做到的)。当准备和生产实际上不一样的时候,地雷就潜伏着,但是有了开放轨迹,你可以很容易地拥有完全相同的IP子网、地址、网络和安全策略。这是不可能的,也不切实际。您可能还会发现,覆盖本身就是将关注点从底层传输网络中健康地分离出来。这是真的,而且它们很容易让你在任何基础设施上使用OpenContrail。您甚至可以将开放轨迹嵌套在较低层的开放轨迹覆盖中,尽管对于开放堆栈参考底图,它也提供了折叠这些层的方法。

其次,OpenContrail可以保护Kubernetes上的应用程序,对开发人员来说具有更好的不可见性,对SecOps来说也是透明的。今天,一个CNIKubernetes的提供商实现pod连接,通常NetworkPolicy物体。OpenContrail也这样做,而且比其他CNI供应商做不到的还要多。但是,您真的想要求您的开发人员编写Kubernetes NetworkPolicy对象来将跨应用程序层、DevOps阶段、名称空间等的微服务间访问列入黑名单-白名单吗?我想说的是,安全性正在向开发人员的头脑中转移,他们会做得很好,但是现实地说,当他们必须编写代码、测试、修复、文档等等时,为什么不把这些从他们的盘子里拿走呢?使用OpenContrail,您可以轻松地实现库本内特之外和开发人员权限之外的安全策略。我认为这对于开发人员来说是一个好主意,但是对于解决多用途集群中不断增长的安全复杂性来说也是如此。

如果你已经走了这么远,我希望你不会故意无视富友迟早需要的库本内特SRE。一定要为你的K8s网络安全需求试一试。该社区最近已使它更容易快速开始与赫尔姆包装,并继续工作,使第一天尽可能容易。这Slack team也很有帮助。好消息是,有了OpenContrail项目,它已经经受了5年的战斗考验;你的一天应该平稳。

附言。OpenContrail将很快加入Linux Foundation Networking,并可能被重新命名,使本文成为早期SDN和云原生古代的遗迹。