您可以在活动控制器节点上使用命令行界面配置 LBaaS。

LBaaS 侦听器可以使用 HTTP、TCP、或终止 HTTPS。终止 HTTPS 侦听器将为入站连接终止 TLS,这些侦听器的 TLS 证书和密钥存储在 Barbican 中。如果要创建终止 HTTPS 侦听器,请联系您的云管理员,确定是否必须配置 ACL 才能向 barbican 用户授予项目密钥的访问权限。

前提条件

  • 在网络上创建公共子网和路由器。对于 NSX Data Center for vSphere 部署,路由器类型必须为 exclusive

    注:

    可以在租户子网上创建负载平衡器,但是必须为它分配一个浮动 IP 地址。

  • 至少配置一个客户端和两个服务器实例。

过程

  1. viouser 用户身份登录到 OpenStack 管理服务器
  2. viouser 用户身份登录到控制器节点。
  3. 加载您的用户帐户的凭据文件。
    source user-credentials.rc
  4. 如果要创建终止 HTTPS 侦听器,并且需要配置 ACL,请授予 barbican 用户对证书、密钥和 TLS 容器的访问权限。
    openstack acl user add -u barbican-uuid object-name

    为项目中的每个证书、密钥和容器运行一次此命令。

    您可以运行 openstack user list 命令查找 barbican 用户的 UUID。您可以运行 openstack secret list 命令查找证书、密钥和容器名称。

  5. 创建负载平衡器。
    neutron lbaas-loadbalancer-create --name lb-name lb-subnet-id

    只有指定子网的成员可以添加到 LBaaS 池中。

  6. 为新负载平衡器创建侦听器。
    neutron lbaas-listener-create --loadbalancer lb-name --protocol {HTTP | TCP | TERMINATED_HTTPS} --protocol-port port-num --name listener-name [--default-tls-container=tls-container-uuid]

    如果指定 TERMINATED_HTTPS 作为协议,那么还必须提供 TLS 容器的 ID。

  7. 创建 LBaaS 池。
    neutron lbaas-pool-create --lb-algorithm lb-method --listener listener-name --protocol {TCP | HTTP} --name pool-name

    --lb-algorithm 参数接受以下值。

    参数

    说明

    LEAST_CONNECTIONS

    新客户端请求将发送到连接数最少的服务器。

    ROUND_ROBIN

    根据每个服务器分配到的权重,依次使用各服务器。

    SOURCE_IP

    所有源自相同源 IP 地址的连接由同一个池成员处理。

  8. 将至少两个服务器实例添加到创建的 LBaaS 池中。
    neutron lbaas-member-create --subnet lb-subnet-id --address server1-ip --protocol-port 80 pool-name
    neutron lbaas-member-create --subnet lb-subnet-id --address server2-ip --protocol-port 80 pool-name
  9. 设置运行状况监控。
    neutron lbaas-healthmonitor-create --delay delay-seconds --type {HTTP | TCP | PING} --max-retries number --timeout timeout-seconds --pool pool-name

    参数

    说明

    --delay

    输入将探查发送给成员之间的时间(以秒为单位)。

    --type

    指定 HTTPTCPPING

    --max-retries

    输入将成员状态更改为 INACTIVE 之前允许的失败连接次数。

    --timeout

    输入监控器在超时之前等待建立连接的时间(以秒为单位)。

    超时值必须小于延迟值。

    --pool

    指定您创建的 LBaaS 池。

  10. 如果在租户子网上创建了负载平衡器,请将一个浮动 IP 地址与负载平衡器相关联。
  11. (可选) 发送测试请求以验证 LBaaS 配置。
    1. viouser 用户身份登录到 OpenStack 管理服务器
    2. 创建测试 index.html 文件。
    3. 在同一个目录中启动 Web 服务器。
      sudo python -m SimpleHTTPServer 80
    4. 登录到客户端实例。
    5. 运行 wget 命令,查看请求是否正在池中的服务器之间正确进行负载平衡。
      • 对于不含 TLS 的负载平衡,请运行以下命令:

        wget -O - http://mgmt-server-ip
      • 对于含 TLS 的负载平衡,请运行以下命令:

        wget -O - https://mgmt-server-ip