什么是 F5network¶
F5network 组件整合了 F5 官方项目 f5 ipam controller 和 k8s bigip ctlr, 完成对 F5 设备的控制,将集群中 service 和 ingress 配置同步到 F5 硬件设备上,实现集群北向入口的负载均衡。
其中,k8s bigip ctlr 组件负责监控 service 或 ingress 对象,实现对 F5 硬件设备的控制面规则下发; 当工作在 4 层负载均衡模式下时,f5 ipam controller 组件主要负责 F5 硬件的入口 VIP 分配。
转发模式¶
F5 设备有两种模式来转发流量到集群(关于转发模式,更多信息可参考官方说明 )。
-
NodePort 转发模式:F5 把流量转发到集群节点的 nodePort 上,该模式即可工作在 “4 层转发” 和 “7 层转发”。
优势:不需要在集群和 F5 设备之间做特殊处理,只要 F5 设备能够访问集群节点即可,通用性更强。
要求:集群应用的 loadBalancer service 对象必须分配了 nodePort。
-
Cluster 转发模式:F5 把流量直接转发到 Pod IP 上,该模式即可工作在 “4 层转发” 和 “7 层转发”。
优势:数据包转发不经过 kube proxy 的 NodePort,直接转发到 Pod 上,转发方式更加高效,延时更低。
要求:集群通过 BPG 协议把 Pod 路由转发到网络中的路由器和 F5 设备上,或者集群中的节点同 F5 设备间建立 VXLAN 隧道。
功能说明¶
-
4 层负载均衡
该负载均衡模式下,配合 "NodePort 转发模式",可为 LoadBalancer 服务(须具备 nodePort) 创建 F5 负载均衡; 也可配合 "Cluster 转发模式" 为 LoadBalancer 服务(可不分配 nodePort)创建 F5 负载均衡。 其中,f5 ipam controller 组件维护一个可配置的 VIP 池,为每个 service 独立分配一个独享的 EXTERNAL IP。
该模式下,务必安装 f5 ipam controller ,为每个 service 分配一个 VIP。
-
7 层负载均衡
该负载均衡模式下,工作为 ingress controller。可配合 “NodePort 转发模式”,要求 ingress 匹配的 service 是 nodePort 类型; 可配合 “Cluster 转发模式”,ingress 匹配的 service 是 clusterIP 类型即可。
该模式下,不需要安装 f5 ipam controller,所有 ingress 共享一个 VIP。