使用F5与Openshift集成目的
外部流量访问应用时,通过F5 BIG-IP硬件设备直接代理到集群中的Pod。
这样做的好处,很明显。
使用硬件负载均衡器替换掉软件负载均衡器,提高性能。
F5有更灵活的配置,可以实现更复杂的流量控制
Openshift操作
Openshift通过BIG-IP Controller来控制BIG-IP设备。由于Openshift是基于Kubernetes的,所以它们使用同一个Controller(k8s-bigip-ctlr)。BIG-IP Controller为集群中的应用配置BIG-IP对象,提供南北流量的服务。
BIG-IP Controller有两种方式来使用F5 BIG-IP设备
为Openshift中的Service提供代理流量
为Openshift中的Route提供代理流量
为Openshift中的Service提供代理流量(不介绍具体部署操作)
这种方式,我们测试下来发现,需要为对外提供服务的Service绑定到F5的不同端口,同时外部访问应用时需要指定端口号。如:
app1.openshift.example.com:8000, app2.openshift.example.com:8001,app3.openshift.example.com:8002,其中端口号不能重复。
为Openshift中的Route提供代理流量
使用BIG-IP作为Openshift的Router,能实现以下功能:
1、为Services创建BIG-IP本地流量规则
2、提供HTTP/HTTPS路由
3、为Route资源添加BIG-IP健康检查
本文只介绍,如何使用F5提供HTTP/HTTPS路由。这也是最核心的部分。
部署环境版本:
2台F5:v13 192.168.200.82 192.168.200.83
Openshift集群: v3.9.1
创建一个VXLAN profile F5
创建一个VXLAN Tunnel F5
Local Address使用vip: 192.168.200.84
Secondary Address使用F5的设备IP:node1 192.168.200.82, node2 192.168.200.83
在F5 Node1上的TMOS创建Tunnel
在每个F5设备VXLAN中创建Self IP F5
IP为设备对应在Openshift的HostSubnet下的一个IP(只要在对应的HostSubnet下就OK)
在F5 Node1中创建Self IP
1、对应每台F5设备创建一个Deployment
2、Deployment中的 --bigip-url 为设备的IP
3、Deployment中的 --bigip-partition为之前F5下创建的Partition,Openshift
4、Deployment中的 --route-vserver-addr 为F5对外提供服务的IP
当BIG-IP Controller POD启动后,在F5上会自动创建两个virtual servers
"ose-vserver" 为HTTP请求
"https-ose-vserver" 为HTTPS请求
这两个virtual servers是Openshift下所有的Route共用的。
说明
Openshit上创建Service后,F5会自动创建新的Pool,Pool里的资源即为Service下的Pod
请求到达F5后,F5根据请求的域名,找到对应的Pool,请求直接到达Pod。不会请求集群里的Route。
文章作者:潘晓华
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞3
添加新评论1 条评论
2019-06-25 21:38