VMware Integrated OpenStack 3.0 或 3.1 支援 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。
- 切換至根使用者。
sudo su -
- 啟用 LBaaS v2.0。
viocli lbaasv2-enable
選項
說明
-d DEPLOYMENT
指示 VMware Integrated OpenStack 部署的名稱。
- 從 VMware Integrated OpenStack Manager,使用 SSH 登入 Neutron 節點。
- 切換至根使用者。
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>