我可以在许多DevOps产品团队之间安全地共享一个k8s集群吗



是否有一种安全的方式在同一个k8s集群上与不同的产品DevOps团队合作?如何隔离团队之间的工作负载?我知道有k8s rbac和命名空间可用,但运行不同的prod工作负载安全吗?我知道istio,但据我所知,我的Südasien没有直接的答案。我们如何处理来自同一集群中不同团队的不同入口配置?如果不能安全地隔离工作负载,如何协调k8s集群以减少维护。

非常感谢!

答案是:这取决于情况。首先,Kubernetes在默认情况下并不不安全,容器提供了一个基本的抽象层。更好的问题是:

  • 您需要多少隔离
  • 用户管理怎么样
  • 您是否需要加密工作负载之间的流量

隔离级别

如果您需要在工作负载之间进行强隔离(我的意思是非常强(,请帮自己一个忙,使用不同的集群。在某些业务案例中,您可能需要保证某种工作负载不允许在同一台(虚拟(机器上运行。您也可以尝试通过添加仅用于子项目之一的节点来实现这一点,并使用仿射和反仿射来处理调度。但是,如果需要这种级别的隔离,在考虑日志聚合、度量或通常在所有服务中使用组件的任何时候,您都可能会遇到问题。

对于任何其他用例:构建一个集群并按名称空间划分。你甚至可以创建一对入口控制器,只属于你的一个团队。

用户管理

手动管理RBAC和用户可能有点棘手。Kubernetes本身支持OIDC令牌。如果您已经使用OIDC进行SSO或类似操作,则可以在Kubernetes中重用您的令牌来验证用户。我从来没有用过这个,所以我不知道使用OIDC的角色映射。

另一个解决方案是Rancher或其他集群编排工具。我不知道其他的,但Rancher有内置的用户管理。您还可以创建项目,为某个访问群体对多个命名空间进行分组。

流量加密

通过使用像Istio或Linkerd这样的服务网格,您可以加密pod之间的流量。即使加密工作负载听起来很诱人,也要明确你是否真的需要这样做。服务网格有一些缺点,例如资源使用。此外,还有一个组件需要管理和更新。

相关内容

  • 没有找到相关文章

最新更新