部署EIP网关
介绍如何部署弹性公网IP网关。
当用户环境使用VPC网络时,由于VPC网络是一块网络隔离的地址空间,在VPC网络中的虚拟机如果需要与外部通信,需要绑定弹性公网IP(EIP)。EIP是经典网络可路由访问的一段IP地址。EIP网关负责将EIP和VPC的虚拟机IP进行IP地址转换(NAT),实现外部通过EIP访问VPC内的虚拟机IP。
系统部署后,默认不部署EIP网关。需要手工部署。本节介绍如何部署EIP网关。
EIP网关网络要求
EIP网关是VPC网络和外部网络(underlay网络)的交换节点,因此在需要在underlay网络进行正确配置,确保源和目的地址为EIP地址池的流量能够通过EIP网关,这样才能起到EIP网关的作用。

EIP网关的网络要求如下:
1)EIP网关的IP或EIP在underlay网络中是EIP地址池IP的下一跳(Nexthop),也就是underlay网络中,目的地址为EIP地址池的流量都需要经过EIP网关
- EIP网关能够通过underlay网络访问所有的宿主机的sdn_encap_ip(默认为宿主机的管理IP)
在计算节点部署EIP网关
EIP网关需要依赖ovn-controller, sdnagent等软件包,这些软件包都已经在计算节点部署好了,因此在计算节点部署EIP网关,在网络配置正确的前提下,可以比较容易实现EIP网关配置。
单节点EIP网关
这是最简单的场景,选择一台符合EIP网关网络要求的计算节点,修改该节点的 /etc/yunion/host.conf,将 sdn_enable_eip_man 设置为 true,重启该计算节点的 default-host pod,即可生效。
主备高可用EIP网关
在该场景,则需要使用ansible脚本实现自动化部署。
部署之前,需要为两台计算节点申请一 个VIP。
Ansible脚本位于sdnagent代码仓库的 build/sdnagent/root/usr/share/sdnagent/ansible/ 目录下。
将inventory文件复制一份,根据实际的环境,调整其中的变量值
sdnagent_rpm sdnagent.rpm在当前机器中的位置. keepalived将从目标机器配置的yum仓库中直接部署
oc_region "oc_"前缀的变量用于向keystone认证,访问API服务。可以从default-climc pod
oc_auth_url 通过"env | grep ^OS_"命令获得相应的值
oc_admin_project
oc_admin_user
oc_admin_password
vrrp_router_id keepalived的virtual router id值。主备必须相同。若环境中有其他keepalived部署,必须不能冲突
vrrp_priority keepalived实例的priority,数值大的为MASTER,小的为BACKUP
vrrp_interface keepalived进行VRRP通信的网卡,这里为计算节点的管理网卡,一般为br0
vrrp_vip keepalived实例间相互通告的vip,可用作访问eip的下一跳地址
inventory配置好以后,执行ansible playbook
ansible-playbook -i a-inventory playbook.yaml