还记得容器是新东西的时候,我们都担心干坏事的人从一个容器跳到另一个容器。容器通常是安全的,但可能会出事,如CVE-2019-5736。为此,开发工具和Kubernetes多租户初创公司Loft Labs宣布其开源vcluster可以用于虚拟集群的隔离模式。
vcluster追随k3v的脚步——它是基于流行的k3s Kubernetes发行版虚拟化Kubernetes的概念证明。如今,vcluster使你能够启动轻量级虚拟Kubernetes集群,这些集群运行在底层Kubernetes集群的命名空间中。这种方法减少了集群的蔓延,允许更安全、更易于维护的多租户,旨在实现更高效的资源共享,从而最终节省基础设施成本。
单独的控制平面
它的新功能是,可以启动虚拟集群,这些集群通过单独的Kubernetes控制平面在逻辑上被隔离。然而,这些虚拟集群、pod及其容器中运行的工作负载在默认情况下并不是隔离的。相反,它们被限定在一个命名空间内。
这对于一些用例非常有用,比如租户可以使用适当的基于角色的访问控制(RBAC)权限设置自定义命名空间,这样他们就可以在虚拟化集群中开发,而无需要求集群管理员或站点可靠性工程团队为他们创建或修改CustomResourceDefinitions(CRD)。vcluster用户、首席Adobe云工程师Mike Tougron写道,这意味着,“突然间,开发团队可以随心所欲地运行定制operator,并且仍然保留主机集群的多租户性质。”
这很方便。工程师在构建、测试和调试云原生软件时,通常将虚拟集群用作开发环境。虚拟集群还可以用作执行持续集成/持续交付(CI/CD)管道的临时环境。
已启用和自动配置安全控制
以前,vcluster工作负载的任何Kubernetes安全机制都必须由集群管理员手动创建。现在,通过vcluster的隔离模式,各种Kubernetes安全控制将启用并自动配置,而无需手动配置。这些措施包括:
——pod安全标准(准入控制政策)
——资源配额和限制范围
——网络策略
Loft Labs将此视为虚拟集群的默认最佳实践规则集。正如Loft Labs联合创始人兼首席执行官Lukas Gentele所说,“以前,管理员必须为虚拟集群本身添加安全约束,这增加了复杂性并需要持续维护。现在,在隔离模式下,我们作为项目维护者提供了一套默认的安全措施,我们建议将其作为隔离虚拟集群的最佳实践。”
如果你需要更高的安全性,隔离模式会强制执行基线工作负载隔离策略。Gentele表示,“管理员可以调整其用例和组织安全策略的隔离约束,但我们可以让他们更容易使用vcluster,同时在默认情况下从一开始就强制执行更严格的安全边界。”
Kubernetes多租户
vcluster在解决Kubernetes多租户问题方面还有其他优势,包括:
——比简单的基于命名空间的多租户更好的隔离;
——降低了云计算成本,因为虚拟集群比单独的单租户集群更轻量级和资源效率更高;
——应用程序工作负载与底层集群的共享基础架构工作负载(例如共享入口控制器或网络插件)的逻辑分离和封装。
同时,虚拟集群用户可以期望虚拟集群的行为与任何常规Kubernetes集群一样,因为vcluster现在是经过认证的Kubernetes发行版。换句话说,它通过了所有的CNCF Kubernetes一致性测试。
Tougron认为vcluster在CI/CD和canary或blue/green部署方面有很大的潜力,笔者赞同这一点。云原生开发人员应该仔细研究vcluster——它可能是你一直在寻找的安全开发Kubernetes环境的关键部分。
原文链接:
https://thenewstack.io/locking-down-kubernetes-containers-with-vcluster/