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

过程

  1. 使用 SSH 登录到 VMware Integrated OpenStack Manager。
  2. 切换到 root 用户。
    sudo su -
  3. VMware Integrated OpenStack Manager,使用 SSH 登录 Neutron 节点。
  4. 切换到 root 用户。
    sudo su -
  5. 创建独占路由器。
    neutron router-create --router_type=exclusive <router name>
  6. 将子网附加到新路由器。
    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>
  7. 创建负载平衡器。

    此步骤包括创建负载平衡器、创建侦听器和创建负载平衡器池。

    1. 创建负载平衡器,指定负载平衡 VIP 子网。
      neutron lbaas-loadbalancer-create --name LOAD_BALANCER_1_NAME <vip-subnet-id>

      参数

      说明

      name

      提供新负载平衡器的名称。

      vip-subnet-id

      指定新负载平衡器的 VIP 子网。只有该子网中的成员可以添加到池中。

    2. 为新负载平衡器创建侦听器。
      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

      提供新侦听器的名称。

    3. 创建 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

      提供新池的名称。

  8. 为服务器和客户端创建实例。
    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>
  9. 将服务器实例添加到创建的 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>
  10. 设置运行状况监控。
    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 池。

  11. (可选) 发送测试请求以验证 LBaaS 配置。
    1. 创建测试 index.html 文件。
    2. 从相同的目录,运行简单的请求。
      # sudo python -m SimpleHTTPServer 80
    3. 登录到客户端实例。
    4. 运行 wget 命令,查看请求是否已在池中的两个服务器之间正确进行负载平衡。
       # wget -O - http://<vip-ip>