Devstack配置負載均衡,負載均衡版本V2

本文爲minxihou的翻譯文章,轉載請註明出處Bob Hou: http://blog.csdn.net/minxihouphp

JmilkFan:minxihou的技術博文方向是 算法&Openstack自動化 ,寫得很好,值得推薦。 : )css

目錄

本文爲博主翻譯文章,轉載請註明出處Bob Hou: http://blog.csdn.net/minxihou
負載均衡項目在openstack開源以後就一直在開發,早先neutron LBaaS V1的版本已經不在適用,如今使用的是LBaaS V2的版本。 LBaaS V2 API開發參照Octavia。html

階段1:建立Devstack + 2個nova實例

首先,建立一個至少8G內存16G磁盤空間的虛擬機,確保虛機更新(原文是: make sure it is updated,譯者認爲是須要yum update來更新組件。)安裝git組件和任何你認爲有用的開發組件。
安裝devstacknode

git clone https://git.openstack.org/openstack-dev/devstack
cd devstack

參照下列配置編輯你的local.conf文件mysql

[[local|localrc]]
# Load the external LBaaS plugin.
enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas
enable_plugin octavia https://git.openstack.org/openstack/octavia

# ===== BEGIN localrc =====
DATABASE_PASSWORD=password
ADMIN_PASSWORD=password
SERVICE_PASSWORD=password
RABBIT_PASSWORD=password
# Enable Logging
LOGFILE=$DEST/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=$DEST/logs
# Pre-requisite
ENABLED_SERVICES=rabbit,mysql,key
# Horizon
ENABLED_SERVICES+=,horizon
# Nova
ENABLED_SERVICES+=,n-api,n-crt,n-cpu,n-cond,n-sch
# Glance
ENABLED_SERVICES+=,g-api,g-reg
# Neutron
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta
# Enable LBaaS v2
ENABLED_SERVICES+=,q-lbaasv2
ENABLED_SERVICES+=,octavia,o-cw,o-hk,o-hm,o-api
# Cinder
ENABLED_SERVICES+=,c-api,c-vol,c-sch
# Tempest
ENABLED_SERVICES+=,tempest
# ===== END localrc =====

運行stack.sh而後作完整性檢查linux

./stack.sh
. ./openrc

neutron net-list  # should show public and private networks

在nova中建立兩個實例用做測試http服務器git

#create nova instances on private network nova boot --image $(nova image-list | awk '/ cirros-.*-x86_64-uec / {print $2}') --flavor 1 --nic net-id=$(neutron net-list | awk '/ private / {print $2}') node1 nova boot --image $(nova image-list | awk '/ cirros-.*-x86_64-uec / {print $2}') --flavor 1 --nic net-id=$(neutron net-list | awk '/ private / {print $2}') node2 nova list # should show the nova instances just created #add secgroup rules to allow ssh etc.. neutron security-group-rule-create default --protocol icmp neutron security-group-rule-create default --protocol tcp --port-range-min 22 --port-range-max 22 neutron security-group-rule-create default --protocol tcp --port-range-min 80 --port-range-max 80

在建立的兩個節點上每一個節點配置一個簡單的web服務器。使用ssh連接到每一個實例中(用戶名:「cirros」,密碼:「cubswin」)web

MYIP=$(ifconfig eth0|grep 'inet addr'|awk -F: '{print $2}'| awk '{print $1}')
while true; do echo -e "HTTP/1.0 200 OK\r\n\r\nWelcome to $MYIP" | sudo nc -l -p 80 ; done&

階段2:建立你的負載均衡

neutron lbaas-loadbalancer-create --name lb1 private-subnet
neutron lbaas-loadbalancer-show lb1  # Wait for the provisioning_status to be ACTIVE.
neutron lbaas-listener-create --loadbalancer lb1 --protocol HTTP --protocol-port 80 --name listener1
sleep 10  # Sleep since LBaaS actions can take a few seconds depending on the environment.
neutron lbaas-pool-create --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTP --name pool1
sleep 10
neutron lbaas-member-create  --subnet private-subnet --address 10.0.0.3 --protocol-port 80 pool1
sleep 10
neutron lbaas-member-create  --subnet private-subnet --address 10.0.0.5 --protocol-port 80 pool1

請注意在上面命令行中的「10.0.0.3」和「10.0.0.5」IP地址是你建立出來的兩個實例機器的IP地址(這個以實際你建立出來虛機的IP地址爲準)。建立出來負載均衡的VIP會在lbass-loadbalancer-create中以vip_address的開頭形式報告出來。一個快速檢測LB的方法是使用curl指令測試這個LB的IP,這個指令應該會交替的訪問實際兩個虛機節點的IP地址。(從配置文件中不難看出是使用的round robin輪詢方式來訪問)
譯者注: 在linux中curl是一個利用URL規則在命令行下工做的文件傳輸工具。算法

原文地址:http://docs.openstack.org/developer/devstack/guides/devstack-with-lbaas-v2.htmlsql

相關文章
相關標籤/搜索