本文旨在记录apisix与openstack对接的思路。
背景介绍:
原环境:keepalived+haporxy+openstack 三个节点高可用+负载均衡 所有服务部署在三个节点上
改造方案:
1.两节点:keepalived+apisix实现高可用
2.apisix对三个controller节点实现负载均衡
3.共需5个服务器
apisix与openstack脚本对接:仅记录思路
资源定义:
1:openstack对应服务的 节点ip及端口号 用于创建upstream
2:高优先级路由的uri和method 以及对应plugin的参数设置
3:低优先级(端口号匹配)的结构体构建
逻辑定义:
创建upstream:先构建node信息,将openstack服务名称作为upstream的id
创建services:直接以服务名称作为id,并绑定同id的upstream
创建高优先级router:绑定同名称的service,同时根据资源定义2中定义的参数,构建req-body
创建低优先级路由:端口号匹配,其优先级一定低于高优先级路由
删除逻辑:
删除route:必须再创建时,记录了所有route的id,遍历删除
删除service:根据openstack服务名称删除
删除upstream:根据openstack服务名称删除
所有逻辑为线性,不然会出错