VMware Integrated OpenStack 4.0 支持 LBaaS v2.0。默认情况下,完成 VMware Integrated OpenStack 安装或升级过程后会启用 LBaaS v2.0。
关于此任务
该任务包含创建运行状况监控并将其与包含 LBaaS 服务器实例的 LBaaS 池关联起来。运行状况监控是一种 Neutron 服务,可检查实例是否仍在指定协议端口上运行。
先决条件
VMware Integrated OpenStack 不支持 LBaaS v1.0。
该任务仅适用于使用 NSX 部署的 VMware Integrated OpenStack。
过程
- 使用 SSH 登录到 VMware Integrated OpenStack Manager。
- 切换到 root 用户。
sudo su -
- 从 VMware Integrated OpenStack Manager,使用 SSH 登录 Neutron 节点。
- 切换到 root 用户。
sudo su -
- 创建独占路由器。
neutron router-create --router_type=exclusive <router name>
- 将子网附加到新路由器。
neutron net-create <network name> neutron subnet-create <network name> <CIDR value> --name <subnet name> neutron router-interface-add <router name or id> <subnet name or id>
- 创建负载平衡器。
此步骤包括创建负载平衡器、创建侦听器和创建负载平衡器池。
- 创建负载平衡器,指定负载平衡 VIP 子网。
neutron lbaas-loadbalancer-create --name LOAD_BALANCER_1_NAME <vip-subnet-id>
参数
说明
name
提供新负载平衡器的名称。
vip-subnet-id
指定新负载平衡器的 VIP 子网。只有该子网中的成员可以添加到池中。
- 为新负载平衡器创建侦听器。
neutron lbaas-listener-create \ --loadbalancer LOAD_BALANCER_1_NAME \ --protocol <protocol type> \ --protocol-port <protocol port> --name LISTENER_1_NAME
参数
说明
loadbalancer
指定您在上述子步骤中创建的负载平衡器。
protocol type
指定侦听器的协议类型。
TCP
HTTP
HTTPS
protocol port
指定协议端口。
name
提供新侦听器的名称。
- 创建 LBaaS 池。
neutron lbaas-pool-create \ --lb-algorithm <load balancing method> \ --listener LISTENER_1_NAME \ --protocol <protocol type> \ --name LB_POOL_1
参数
说明
lb-algorithm
指定负载平衡方法:
IP_HASH
根据每个数据包的源和目标 IP 地址哈希选择服务器。
LEAST_CONN
根据服务器上现有连接数量将客户端请求分发给多个服务器。新连接将发送至连接最少的服务器。
ROUND_ROBIN
根据每个服务器分配到的权重,依次使用各服务器。当服务器的处理时间保持均匀分布时,此过程是最顺畅、最公平的算法。
URI
URI 左侧部分(问号前面)由运行中的服务器的总权重进行哈希和除法计算。结果指定接收请求的服务器,确保只要所有服务器均可用,请求始终定向至相同的服务器。
listener
指定您在上述子步骤中创建的侦听器。
protocol
为要使用的池成员指定协议。
TCP
HTTP
HTTPS
name
提供新池的名称。
- 创建负载平衡器,指定负载平衡 VIP 子网。
- 为服务器和客户端创建实例。
nova boot --image <image-uuid> --flavor <flavor> <server 1 name> nova boot --image <image-uuid> --flavor <flavor> <server 2 name> nova boot --image <image-uuid> --flavor 1 <client name>
- 将服务器实例添加到创建的 LBaaS 池中。
neutron lbaas-member-create \ --subnet <subnet-id> --address <server 1 IP> \ --protocol-port 80 <pool name> neutron lbaas-member-create \ --subnet <subnet-id> --address <server 2 IP> \ --protocol-port 80 <pool name>
- 设置运行状况监控。
neutron lbaas-healthmonitor-create \ --delay DELAY_IN_SECONDS --type [HTTP | TCP] --max-retries NUMBER \ --timeout TIMEOUT_IN_SECONDS --pool LBAAS_POOL
参数
说明
delay
将探查发送给成员的时间(以秒为单位)。
type
预定义的运行状况监控类型之一。指定 HTTP 或 TCP。
max-retries
成员状态更改为“非活动”之前的连接失败次数。
timeout
监控在超时之前等待建立连接的最大秒数。
注:超时值必须小于延迟值。
pool
指定要监控的 LBaaS 池。
- (可选) 发送测试请求以验证 LBaaS 配置。
- 创建测试 index.html 文件。
- 从相同的目录,运行简单的请求。
# sudo python -m SimpleHTTPServer 80
- 登录到客户端实例。
- 运行 wget 命令,查看请求是否已在池中的两个服务器之间正确进行负载平衡。
# wget -O - http://<vip-ip>