
# MCI概述
#### 为什么需要MCI
在传统的Kubernetes集群中，每个集群都有其负载均衡器和Ingress，这使得在多个集群之间进行负载均衡和流量路由变得困难。UCS为多集群提供了统一的流量入口MCI（Multi Cluster Ingress），帮助您更加简单高效地跨集群、跨区域进行负载均衡和流量路由，进而提高应用程序的可用性和可靠性。
MCI是一种多集群Ingress资源对象，可以根据指定规则将外部流量路由到多个集群内的Pod。使用MCI，用户可自定义转发规则，完成对访问流量的细粒度划分。[图1]展示了流量如何从MCI流向集群：从域名 foo.example.com 流入的流量流向了两个集群中带有标签 app:foo 的 Pod，从域名goo.example.com 流入的流量流向了两个集群中具有标签 app:goo的 Pod。
图1MCI示意图   
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001756494569.png "点击放大")
具体来说，MCI的优势在于：
- 多集群负载均衡：MCI为用户提供统一入口，将流量分发到多个Kubernetes集群中，与集群所处位置无关。
- 流量路由：使用MCI，用户可根据不同条件（URL、HTTP头、源IP等）自定义转发规则，将流量路由到不同集群，实现更灵活的流量控制。
- 高可用：MCI通过健康检查和流量自动切换，实现多集群、多区域的高可用性。
- 可扩展性：MCI发现和管理多个Kubernetes集群上的应用程序资源，实现应用程序自动扩展和部署。
- 安全性：MCI支持TLS安全策略和证书管理，保障应用程序的安全性。
 
#### MCI的工作原理
MCI的功能主要通过请求转发执行器MCI Controller实现。MCI Controller部署在集群联邦控制面，实时监控资源对象的变化，解析MCI对象定义的规则并负责将请求转发到相应的后端Service。
图2MCI Controller工作原理   
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001772226485.png "点击放大")
MCI Controller支持在同一个ELB实例（即同一IP）下设置不同域名、端口和转发规则，其工作原理如[图2]，实现流程如下：
1. 部署人员在集群联邦控制面创建工作负载，并为其配置Service对象。
2. 部署人员在集群联邦控制面创建MCI对象，并在MCI中配置流量访问规则，包括关联的负载均衡器、URL以及访问的后端Service及端口等。
3. MCI Controller监控到MCI对象发生变化，会根据MCI中定义的规则，在ELB侧重新配置监听器以及后端服务器路由。
4. 当用户进行访问时，流量根据ELB中配置的转发策略被转发到对应的后端Service关联的各个工作负载。
 
