问题
- dns如何解析。不同域名的ingress都需要配置一个vip,也需要配置dns。
- 域名指向vip后,vip如何路由的问题,需要配置路由规则。
- 路由规则配置好了,请求到达负载均衡设备,接着就需要配置L4的负载均衡规则。把外部的请求转换成集群内部的请求。
- ingress的配置,让代理插件(nginx,envoy等)知道请求该往哪里转发。
实现
L4:
使用ipvs插件。
- 基于 IPAM 分配 VIP
- 将VIP 绑定至 IPVS Directors
- 创建 IP tunnel
- 通过 BGP 发布VIP 路由
ECMP:等价多路径
L7
- 基于 Envoy 提供 L7 Path forwarding
- 可以提供 TLS Termination
- 基于 upstream 的 Istio 实现配置管理和热加载
- 基于 Istio 实现 Service Mesh
DNS
- 创建DNS记录
- 为多个 cluster 的 ingress VIP 生成相同的 DNS 记录实现 DNS 联邦
ingress controller
- 编排控制器
- 为 ingress 创建 service object, 将LB配置委派给 service controller
- 创建 configmap 为每个 ingress 创建 envoy 配置
- 创建 L7 pod 的 deployment 加载envoy 集群
- 生成DNS记录