
背景
在当下的云计算时代,我们经常会听到“租户”、“多租户”。“租户”是多租户架构技术中的概念,这种技术是用来处理多个组织共用同一个系统或者组件时的数据隔离性。在 Kubernetes 中的最简单的多租户是根据命名空间( Namespace)进行划分的,众多的命名空间将资源/工作负载进行了隔离。

作为 Kubernetes 资源之一的 Ingress 也不例外,用户可以在不同的命名空间下创建 Ingress 资源来控制进入集群的流量。即使 Ingress 资源实现了多租户,但作为组件的 Ingress Controller 依然是共用的,没有做到真正的隔离。
因此就有了多租户 Ingress Controller 的诉求:每个命名空间下都有独立的 Ingress Controller,命名空间之间做到组件的隔离,达到了互不影响目的。
原理
Flomesh 提出了 NamespacedIngress 的概念,通过控制器在指定的命名空间下部署 Ingress Controller。每个 Ingress Controller 只处理各自命名空间下 Ingress 资源标识的流量。
比如下面的 YAML 中定义了监控在端口 100 上的 Ingress Controller,同时还会为其创建 LoadBalancer 类型的 Service,监听在 100 端口。
apiVersion: flomesh.io/v1alpha1
kind: NamespacedIngress
metadata:
name: namespaced-ingress-

文章介绍了如何在Kubernetes中使用Flomesh的NamespacedIngress实现多租户IngressController,以达到组件隔离和流量管理的目的。通过部署NamespacedIngress资源,每个命名空间可以拥有独立的IngressController,确保不同租户之间的流量不互相影响。文章提供了安装FlomeshIngressController的步骤,创建独立IngressController的示例,以及验证其功能的测试过程。
最低0.47元/天 解锁文章
7717

被折叠的 条评论
为什么被折叠?



