在网络层面上与Kubernetes进行租户隔离

时间:2018-02-12 21:39:14

标签: kubernetes multi-tenant

我们希望运行需要在网络级别进行租户分离的多租户方案。

这个想法是每个租户都会收到一个专用节点和一个其他租户节点可以加入的专用网络。租户节点应该能够在该网络中相互交互。

网络不应该相互通信(真正的网络隔离)。

是否有任何架构模式可以实现这一目标?

  • 每个租户一个Kubernetes集群?
  • 所有租户都有一个Kubernetes群集,每个租户有一个子网?
  • 跨越VPC的一个Kubernetes集群(以AWS术语发言)?

2 个答案:

答案 0 :(得分:1)

在kubernetes中处理多租户的常规方法是使用命名空间。但这是在一个kube集群中,这意味着您仍然拥有所有租户共享的相同底层网络解决方案。这实际上很好,因为您Network Policies限制群集中的网络。

显然,每个租户可以运行自治集群,但这不是多租户,只是多个集群。可以在节点级别配置网络以按预期路由,但是您仍然会遇到跨群集服务发现等问题。联合可以帮助解决这个问题,但我仍然建议追逐命名空间+策略方法

答案 1 :(得分:1)

我看到了四种在网络级运行多租户k8s集群的方法:

  1. Namespaces
  2. Ingress rules
  3. allow/deny and ingress/egress Network Policies
  4. Network-aware Zones