您可以使用命令列介面在作用中控制器節點上設定 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 容器的識別碼。

  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