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. 切換至根使用者。
    sudo su -
  3. VMware Integrated OpenStack Manager,使用 SSH 登入 Neutron 節點。
  4. 切換至根使用者。
    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>